第76講:MySQL數據庫中常用的命令行工具的基本使用

文章目錄

    • 1.mysql客戶端命令工具
    • 2.mysqladmin管理數據庫的客戶端工具
    • 3.mysqlbinlog查看數據庫中的二進制日志
    • 4.mysqlshow統計數據庫中的信息
    • 5.mysqldump數據庫備份工具
    • 6.mysqllimport還原備份的數據
    • 7.source命令還原SQL類型的備份文件

MySQL數據庫提供了很多的命令行工具,在日常運維過程中可以使用這些工具來操作數據庫。

1.mysql客戶端命令工具

mysql命令時MySQL數據庫的客戶端工具,如果在非數據庫的服務器上想要操作目標數據庫,就需要去安裝mysql客戶端,通過mysql客戶端可以對數據庫進行增刪改查操作,還可以進入mysql的交互式界面。

mysql工具的語法格式:mysql [options] [database]

mysql工具常用的選項:

  • -u,--user:指定登陸數據庫的用戶名。
  • -p,--password:指定登錄數據庫的密碼
  • -h,--host:指定要登陸的MySQL服務器地址。
  • -P,--port:指定MySQL數據庫的端口號。
  • -e,--excute:通過此參數可以在非交互式下操作數據庫,常用于腳本中。
#查看MySQL中有那些數據庫
[root@mysql ~]# mysql -u root -p123456 -h 192.168.20.10 -P 3306 -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| db-3               |
| db_1               |
| db_2               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+#該警告可以忽略,提示將密碼顯示在命令行不安全。

2.mysqladmin管理數據庫的客戶端工具

mysqladmin可是管理數據庫操作的客戶端程序,可以用它來檢查服務器的配置和當前的運行狀態,還可以來創建刪除刷新數據庫等等。

mysqladmin管理工具的參數很多,可以通過mysqladmin --help來查看幫助信息,根據需要去查找對應的參數。

mysqladmin管理工具可以通過命令參數對數據庫進行很多的操作,如下所示,有flush刷新數據庫的功能、password修改用戶的密碼、processlist查看當前數據庫的進程、shutdown關閉數據庫、variables查看數據庫的參數配置、version查看數據庫的版本。

image-20220629220509895

mysqladmin工具的語法格式:mysqladmin [options] command

選項參數:

  • -u,--user:指定登陸數據庫的用戶名。
  • -p,--password:指定登錄數據庫的密碼
  • -h,--host:指定要登陸的MySQL服務器地址。
  • -P,--port:指定MySQL數據庫的端口號。

1)查看mysql數據庫的版本

[root@mysql ~]# mysqladmin -uroot -p123456 version
mysqladmin  Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Server version		8.0.26
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			2 days 11 hours 41 min 32 secThreads: 2  Questions: 101  Slow queries: 0  Opens: 200  Flush tables: 3  Open tables: 119  Queries per second avg: 0.000

2)查看mysql數據庫當前的運行的進程

[root@mysql ~]# mysqladmin -uroot -p123456 processlist
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
+----+-----------------+-----------+----+---------+--------+------------------------+------------------+
| Id | User            | Host      | db | Command | Time   | State                  | Info             |
+----+-----------------+-----------+----+---------+--------+------------------------+------------------+
| 5  | event_scheduler | localhost |    | Daemon  | 214901 | Waiting on empty queue |                  |
| 17 | root            | localhost |    | Query   | 0      | init                   | show processlist |
+----+-----------------+-----------+----+---------+--------+------------------------+------------------+

3)創建一個數據庫

[root@mysql ~]# mysqladmin -uroot -p123456 create db_test

4)刪除一個數據庫

[root@mysql ~]# mysqladmin -uroot -p123456 drop db_test
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.Do you really want to drop the 'db_test' database [y/N] y
Database "db_test" dropped

5)查看MySQL運行的狀態

[root@mysql ~]# mysqladmin -uroot -p123456 status
Uptime: 214852  Threads: 2  Questions: 98  Slow queries: 0  Opens: 200  Flush tables: 3  Open tables: 119  Queries per second avg: 0.000

3.mysqlbinlog查看數據庫中的二進制日志

通過mysqlbinlog命令可以查看數據庫生成的二進制文件內容,通過二進制日志可以恢復沒有備份且誤刪除的數據。

mysqlbinlog使用格式:mysqlbinlog [options] 二進制日志文件

可用的選項:

  • -d:指定數據庫名稱,只列出與指定數據庫相關的操作語句。
  • -o:忽略日志中前n行的指令。
  • -r:將輸出的文本格式日志輸出到指定的文件。
  • -s:顯示簡單的格式。
  • --start-datetime=date1 --stop-datetime=date2:顯示指定日期間隔內的所有信息。
  • --start-position=pos1 --stop-position=pos2:顯示指定位置間隔內的所有日志。

查看這個/var/lib/mysql/binlog.000003二進制日志中的數據。

[root@mysql ~]# mysqlbinlog -d db_1 /var/lib/mysql/binlog.000003

二進制日志中記錄的都是實時對數據庫操作的SQL語句。

image-20220629222513290

4.mysqlshow統計數據庫中的信息

通過mysqlshow命令可以統計MySQL數據庫中有多少個數據庫,每個數據庫對應有多少張表,每張表下有多少條數據。

mysqlshow使用語法:mysqlshow [options] [db_name [table_name [col_name]]]

選項:

  • --count:顯示數據庫及表的統計信息。
  • -i:顯示指定數據庫或者指定表的狀態信息。

1)查看MySQL中有多少個數據庫、每個數據庫對應多少張表、每個數據庫下共有多少條數據。

[root@mysql ~]# mysqlshow -uroot -p123456 --count
+--------------------+--------+--------------+
|     Databases      | Tables |  Total Rows  |
+--------------------+--------+--------------+
| db-3               |      2 |            0 |
| db_1               |     23 |      1027304 |
| db_2               |      0 |            0 |
| information_schema |     79 |        32856 |
| mysql              |     37 |         3960 |
| performance_schema |    110 |       232877 |
| sys                |    101 |         5078 |
+--------------------+--------+--------------+
7 rows in set.#Tables表示該數據庫下有多少張表,Total Rows表示當前數據庫中有多少條數據。

2)查看指定數據庫下有那些表,分別有多少條數據。

[root@mysql ~]# mysqlshow -uroot -p123456 db_1 --count
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: db_1
+-------------------------+----------+------------+
|         Tables          | Columns  | Total Rows |
+-------------------------+----------+------------+
| bmxxb                   |        2 |          7 |
| dabiao                  |       62 |      27126 |
| erp_user                |        5 |          5 |
| jszx_xgymjzxxb          |       13 |         15 |
| ryxxb                   |        8 |         22 |
| tb_memory               |        2 |          0 |
| tb_user                 |        9 |          7 |
| tb_user_100w            |        6 |    1000000 |
| tb_user_pro             |        3 |          7 |
| v_jszx_xgymjzxxb_nozjhm |       12 |         15 |
| v_ryxx_bmxx             |        3 |         22 |
| v_ryxxb_1               |        3 |          1 |
| v_ryxxb_2               |        3 |          1 |
| v_ryxxb_3               |        3 |          1 |
| v_ryxxb_4               |        3 |          1 |
| v_ryxxb_5               |        3 |          1 |
| v_ryxxb_6               |        3 |          1 |
| v_ryxxb_c               |        1 |          1 |
| xscjb                   |        6 |         10 |
| xscjb_logs              |        5 |         33 |
| xzdjb                   |        3 |          8 |
| yexxb                   |        3 |          2 |
| ygxxb                   |        8 |         18 |
+-------------------------+----------+------------+
23 rows in set.#Columns表示表中有多少個字段

3)查看指定表的統計信息。

[root@mysql ~]# mysqlshow -uroot -p123456 db_1 xscjb --count

image-20220629223558845

4)查看指定字段的統計信息。

[root@mysql ~]# mysqlshow -uroot -p123456 db_1 xscjb ywcj --count
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: db_1  Table: xscjb  Rows: 10  Wildcard: ywcj
+-------+------+-----------+------+-----+---------+-------+---------------------------------+--------------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges                      | Comment      |
+-------+------+-----------+------+-----+---------+-------+---------------------------------+--------------+
| ywcj  | int  |           | YES  | MUL |         |       | select,insert,update,references | 語文成績 |
+-------+------+-----------+------+-----+---------+-------+---------------------------------+--------------+

5)查看指定數據庫中表的狀態。

[root@mysql ~]# mysqlshow -uroot -p123456 db_1 xscjb -i

image-20220629223759501

5.mysqldump數據庫備份工具

mysqldump工具是對數據庫備份的工具,可以通過這個工具將數據進行備份,然后在不同數據庫之間遷移。

mysqldump的使用語法:

  • 備份指定數據庫

    • mysqldump 選項 數據庫
  • 備份指定數據庫下的某張表

    • mysqldump 選項 數據庫 表
  • 備份多個數據庫

    • mysqldump 選項 --database/-B 數據庫1 數據庫2
  • 備份所有數據庫

    • mysqldump 選項 --all-databases/-A

mysqldump連接數據庫的選項:

  • -u,--user:指定登陸數據庫的用戶名。
  • -p,--password:指定登錄數據庫的密碼
  • -h,--host:指定要登陸的MySQL服務器地址。
  • -P,--port:指定MySQL數據庫的端口號。

mysqldump輸出選項:

  • --add-drop-database:在每個數據庫創建語句前加上 drop database 語句。

  • --add-drop-table:在每個表創建語句前加上 drop table 語句 , 默認開啟 ; 不開啟 (–skip-add-drop-table) 。

  • -n, --no-create-db:不包含數據庫的創建語句。

  • -t, --no-create-info:不包含數據表的創建語句。

  • -d --no-data:不包含數據。

  • -T, --tab=name:自動生成兩個文件:一個.sql文件,創建表結構的語句;一 個.txt文件,數據文件 。

1)備份db_1數據庫

[root@mysql backup]# mysqldump -uroot -p123456 db_1 > db_1.sql

在db_1.sql文件中備份了db_1數據庫的所有表以及數據、

image-20220629225716094

2)備份db_1數據庫下的xscjb表,只備份表結構不備份數據

[root@mysql backup]# mysqldump -uroot -p123456 db_1 xscjb -d > db_1-xscjb.sql

此時備份文件里只有建表語句,不包含數據。

image-20220629230150134

3)備份db_1數據庫下的xscjb表,只備份數據表不備份表結構和數據庫

[root@mysql backup]# mysqldump -uroot -p123456 db_1 xscjb -n -t > db_1-xscjb-data.sql

image-20220629230239629

4)備份db_1數據庫下的xscjb表,生成兩個文件

當我們希望備份數據庫時,表結構和表數據分開存放,.sql文件存放表結構的備份,.txt文件存放表數據的備份,那么就需要使用-T參數了。

使用-T參數之前需要先查看MySQL受信任的備份路徑,否則只能備份表的結構,表數據無法備份成功。

1.查看mysql受信的備份路徑
mysql> show variables like '%secure_file_priv%';
+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+2.備份時指定該路徑作為備份路徑即可
[root@mysql ~]# mysqldump -uroot -p123456 db_1 xscjb -T /var/lib/mysql-files/3.查看生成的備份文件
[root@mysql ~]# ll /var/lib/mysql-files/
總用量 12
-rw-r--r-- 1 root  root  5469 629 23:09 xscjb.sql
-rw-r----- 1 mysql mysql  219 629 23:09 xscjb.txt

.sql文件備份表結構,.txt文件備份表數據,使用-T參數導出的txt表數據,不是SQL語句,而是特定格式的數據。

image-20220629231101892

6.mysqllimport還原備份的數據

mysqllimport工具可以還原mysqldump -T參數備份的txt格式的表數據文件,如果備份的數據是sql格式的,mysqllimport無法還原,mysqllimport只能還原txt格式的備份文件。

使用語法:mysqlimport [options] 數據庫 txtfile

將xscjb的數據清空,然后使用mysqllimport還原剛剛備份的xscjb的數據。

1.清空xscjb表的數據
[root@mysql ~]# mysql -uroot -p123456 -e "delete from db_1.xscjb;"2.還原備份的數據
[root@mysql ~]# mysqlimport -uroot -p123456 db_1 /var/lib/mysql-files/xscjb.txt 
db_1.xscjb: Records: 10  Deleted: 0  Skipped: 0  Warnings: 0#數據還原成功,還原的條數為10條

7.source命令還原SQL類型的備份文件

使用mysqllimport工具只能還原txt類型的備份文件,一般情況下備份的數據庫文件都是.sql格式的,可以通過source命令進行還原,source命令時在交互式中執行的。

[root@mysql ~]# mysql -uroot -p123456
mysql> use db_1;
mysql> source /root/backup/db_1.sql;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211102.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211102.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211102.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 畫條形圖(柱狀圖)

目錄 前言 基礎介紹 月度開支的條形圖 前言 條形圖(bar chart),也稱為柱狀圖,是一種以長方形的長度為變量的統計圖表,長方形的長度與它所對應的變量數值呈一定比例。 當使用 Python 畫條形圖時,通常會使…

python代碼:如何控制一個exe程序只能執行一次

import ctypes import sys def is_program_running(): # 創建互斥體 mutex_name "Global\\MonitorClientMutex" h_mutex ctypes.windll.kernel32.CreateMutexW(None, False, mutex_name) # 檢查互斥體是否已經存在 if ctypes.windll.kernel32.Get…

Centos7.9安裝谷歌【解決依賴問題】

安裝過程 mkdir /home/app cd /home/app wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmyum install -y redhat-lsb-core-4.0-7.el6.centos.x86_64 yum install -y libX11-devel --nogpg yum install -y cmake gcc gcc-c gtk-devel gim…

vscode 編譯運行c++ 記錄

一、打開文件夾,新建或打開一個cpp文件 二、ctrl shift p 進入 c/c配置 進行 IntelliSense 配置。主要是選擇編譯器、 c標準, 設置頭文件路徑等,配置好后會生成 c_cpp_properties.json; 二、編譯運行: 1、選中ma…

zabbix 通過 odbc 監控 mssql

1、環境 操作系統:龍蜥os 8.0 zabbix:6.0 mssql:2012 2、安裝odbc 注意:需要在zabbix server 或者 zabbix proxy 安裝 odbc驅動程序 dnf -y install unixODBC unixODBC-devel3、安裝mssql驅動程序 注意:我最開始嘗試…

Tomcat管理功能使用

前言 Tomcat管理功能用于對Tomcat自身以及部署在Tomcat上的應用進行管理的web應用。在默認情況下是處于禁用狀態的。如果需要開啟這個功能,需要配置管理用戶,即配置tomcat-users.xml文件。 !!!注意:測試功…

react 學習筆記 李立超老師 | (學習中~)

文章目錄 react學習筆記01入門概述React 基礎案例HelloWorld三個API介紹 JSXJSX 解構數組 創建react項目(手動)創建React項目(自動) | create-react-app事件處理React中的CSS樣式內聯樣式 | 內聯樣式中使用state (不建議使用)外部樣式表 | CSS Module React組件函數式組件和類組…

【數據結構和算法】反轉字符串中的單詞

其他系列文章導航 Java基礎合集數據結構與算法合集 設計模式合集 多線程合集 分布式合集 ES合集 文章目錄 其他系列文章導航 文章目錄 前言 一、題目描述 二、題解 2.1 方法一:雙指針 2.2 方法二:分割 倒序 三、代碼 3.1 方法一:雙…

不同品牌的手機如何投屏到蘋果MacBook?例如小米、華為怎樣投屏比較好?

習慣使用apple全家桶的人當然知道蘋果手機或iPad可以直接用airplay投屏到MacBook。 但工作和生活的多個場合里,并不是所有人都喜歡用同一品牌的設備,如果同事或同學其他品牌的手機需要投屏到MacBook,有什么方法可以快捷實現? 首先…

1 億個數據取出最大前 100 個有什么方法?

1 億個數據取出最大前 100 個有什么方法? 大家好,這是一道經常在面試中被遇到的一個問題,我之前面試也是被問到過得,現在一起學習下,下次再被問到就可以輕松地用對。 在計算機科學和數據處理領域,我們經常…

【GDB】

GDB 1. GDB調試器1.1 前言1.2 GDB編譯程序1.3 啟動GDB1.4 載入被調試程序1.5 查看源碼1.6 運行程序1.7 斷點設置1.7.1 通過行號設置斷點1.7.2 通過函數名設置斷點1.7.3 通過條件設置斷點1.7.4 查看斷點信息1.7.5 刪除斷點 1.8 單步調試1.9 2. GDB調試core文件2.1 設定core文件的…

(五)五種最新算法(SWO、COA、LSO、GRO、LO)求解無人機路徑規劃MATLAB

一、五種算法(SWO、COA、LSO、GRO、LO)簡介 1、蜘蛛蜂優化算法SWO 蜘蛛蜂優化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,該算法模型雌性蜘蛛蜂的狩獵、筑巢和交配行為&…

iOS(swiftui)——系統懸浮窗( 可在其他應用上顯示,可實時更新內容)

因為ios系統對權限的限制是比較嚴格的,ios系統本身是不支持全局懸浮窗(可在其他app上顯示)。在iphone14及之后的iPhone機型中提供了一個叫 靈動島的功能,可以在手機上方可以添加一個懸浮窗顯示內容并實時更新,但這個功能有很多局限性 如:需要iPhone14及之后的機型且系統…

Java面試遇到的一些常見題

目錄 1. Java語言有幾種基本類型,分別是什么? 整數類型(Integer Types): 浮點類型(Floating-Point Types): 字符類型(Character Type): 布爾類…

(六)五種最新算法(SWO、COA、LSO、GRO、LO)求解無人機路徑規劃MATLAB

一、五種算法(SWO、COA、LSO、GRO、LO)簡介 1、蜘蛛蜂優化算法SWO 蜘蛛蜂優化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,該算法模型雌性蜘蛛蜂的狩獵、筑巢和交配行為&…

【完整項目】雙模式答題卡識別軟件中YOLO模式的訓練部分詳解,包括訓練填涂區域和手寫準考證號,手把手詳細教學,可延申拓展訓練其他圖像數據

目錄 前言1. 數據準備2. 數據標注3. 先跑起來Windows下用本地的CPU或GPU訓練本地Windows系統連接服務器訓練前言 前文:【完整項目】基于Python+Tkinter+OpenCV+Yolo+手寫OCR的雙模式答題卡識別軟件的設計與實現 如果你需要訓練自己的答題卡模型,那么請先看上面的文章鏈接。…

Flutter自定義下拉選擇框dropDownMenu

利用PopupMenuButton和PopupMenuItem寫了個下拉選擇框,之所以不采用系統的,是因為自定義的更能適配項目需求,話不多說,直接看效果 下面直接貼出代碼、代碼中注釋寫的都很清楚,使用起來應該很方便,如果有任何…

C : DS靜態查找之順序索引查找

Description 給出一個隊列和要查找的數值,找出數值在隊列中的位置,隊列位置從1開始 要求使用順序索引查找算法,其中索引表查找和塊內查找都采用不帶哨兵、從頭開始的順序查找方法。 Input 第一行輸入n,表示主表有n個數據 第二…

OpenSSL 編程指南

目錄 前言初始化SSL庫創建SSL 上下文接口(SSL_CTX)安裝證書和私鑰加載證書(客戶端/服務端證書)加載私鑰/公鑰加載CA證書設置對端證書驗證例1 SSL服務端安裝證書例2 客戶端安裝證書創建和安裝SSL結構建立TCP/IP連接客戶端創建socket服務端創建連接創建SSL結構中的BIOSSL握手服務…

Scrum

Scrum是一個用于開發和維持復雜產品的框架,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代周期組成,一個短的迭代周期稱為一個Sprint,每個Sprint的建議長度是2到4周(互聯網產品研發可以使用1周的Sprin…