mysqladmin、mysqlshow、mysqlcheck的工具使用
在日常的使用中,我們一般使用 mysql 客戶端工具來(lái)進(jìn)行日常的數(shù)據(jù)庫(kù)操作,但其實(shí),整個(gè) MySQL 系統(tǒng)所提供的客戶端工具遠(yuǎn)不止 mysql 一個(gè)。今天,我們就來(lái)簡(jiǎn)單地了解一下另外三個(gè)工具,分別是 mysqladmin、mysqlshow、mysqlcheck 。
mysqladmin
mysqladmin 這個(gè)命令行工具其實(shí)大家應(yīng)該多少會(huì)接觸過(guò)一點(diǎn),它的作用是用于管理操作一些服務(wù)器配置和當(dāng)前的狀態(tài)信息,并且可以創(chuàng)建數(shù)據(jù)庫(kù)。比如說(shuō)我們?nèi)?chuàng)建一個(gè)新數(shù)據(jù)庫(kù)。
[root@localhost ~]# mysqladmin create ma_test;
同時(shí),它也可以用于查看一些服務(wù)器的狀態(tài)信息,比如說(shuō)我們經(jīng)常會(huì)使用的 processlist ,就可以直接使用 mysqladmin 來(lái)查看。
[root@localhost ~]# mysqladmin processlist +----+-----------------+-----------+----+---------+-------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------+----+---------+-------+------------------------+------------------+ | 5 | event_scheduler | localhost | | Daemon | 11752 | Waiting on empty queue | | | 18 | root | localhost | | Query | 0 | init | show processlist | +----+-----------------+-----------+----+---------+-------+------------------------+------------------+
當(dāng)然,還有更多的功能,比如說(shuō)修改密碼、查看變量信息、關(guān)閉服務(wù)、刷新表等等功能。這里就不一一進(jìn)行演示了,有興趣的小伙伴可以自己嘗試一下。
mysqlshow
這個(gè)客戶端工具主要是用于快速顯示數(shù)據(jù)庫(kù)信息,可以看到數(shù)據(jù)庫(kù)是否存在表或者表的列以及索引信息。它的作用其實(shí)非常類似于在 mysql 中的 SHOW 的作用。
[root@localhost ~]# mysqlshow +--------------------+ | Databases | +--------------------+ | information_schema | | ma_test | | mysql | | performance_schema | | sys | | test | | test1 | +--------------------+
直接使用這個(gè)工具,其實(shí)就是類似于 SHOW DATABASES; 的作用。在上面顯示的內(nèi)容中,可以看到前面我們剛剛使用 mysqladmin 創(chuàng)建的 ma_test 庫(kù)。我們也可以指定數(shù)據(jù)庫(kù)名稱,這樣就可以看到這個(gè)數(shù)據(jù)庫(kù)下的表信息。
[root@localhost ~]# mysqlshow test Database: test +----------+ | Tables | +----------+ | db_test | | raw_test | | t | +----------+
接下來(lái)我們?cè)侔驯砻付ㄉ?,直接就可以獲取到這個(gè)表中列字段的信息。
[root@localhost ~]# mysqlshow test t Database: test Table: t +-------+------+-----------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +-------+------+-----------+------+-----+---------+-------+---------------------------------+---------+ | id | int | | YES | | | | select,insert,update,references | | +-------+------+-----------+------+-----+---------+-------+---------------------------------+---------+
非常有意思吧,可以直接在命令行中就獲取到庫(kù)、表、列的信息。另外我們還可以加一些參數(shù),看到更詳細(xì)的信息。
[root@localhost ~]# mysqlshow test -v -v Database: test +----------+----------+------------+ | Tables | Columns | Total Rows | +----------+----------+------------+ | db_test | 3 | 9 | | raw_test | 3 | 0 | | t | 1 | 1 | +----------+----------+------------+ 3 rows in set.
-v 參數(shù)代表的是 --verbose 的簡(jiǎn)寫,它的作用是顯示詳細(xì)的信息,這里寫了兩個(gè)會(huì)多出兩列,分別表示列的數(shù)據(jù)和行的數(shù)量。如果只有一個(gè) -v 的話,則只顯示列的數(shù)據(jù)信息。
mysqlcheck
最后我們?cè)賮?lái)看看 mysqlcheck 這個(gè)工具,它的作用是進(jìn)行表的維護(hù),可以檢查、修復(fù)、優(yōu)化或者分析表。沒錯(cuò),也是我們可以在 mysql 客戶端中進(jìn)行的一些操作,在這里可以直接通過(guò)這個(gè)外部命令行工具來(lái)實(shí)現(xiàn)。
[root@localhost ~]# mysqlcheck --all-databases mysql.columns_priv OK mysql.component OK mysql.db OK mysql.default_roles OK mysql.engine_cost OK mysql.func OK mysql.general_log OK mysql.global_grants OK mysql.gtid_executed OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.innodb_index_stats OK mysql.innodb_table_stats OK mysql.password_history OK mysql.plugin OK mysql.procs_priv OK mysql.proxies_priv OK mysql.replication_asynchronous_connection_failover OK mysql.replication_asynchronous_connection_failover_managed OK mysql.replication_group_configuration_version OK mysql.replication_group_member_actions OK mysql.role_edges OK mysql.server_cost OK mysql.servers OK mysql.slave_master_info OK mysql.slave_relay_log_info OK mysql.slave_worker_info OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK sys.sys_config OK test.db_test OK test.raw_test OK test.t OK [root@localhost ~]# mysqlcheck test test.db_test OK test.raw_test OK test.t OK
這個(gè)命令行工具如果不指定數(shù)據(jù)庫(kù)名稱的話,就需要使用 --all-databases 參數(shù),這樣就會(huì)檢查所有庫(kù)中的所有表,如果指定了數(shù)據(jù)庫(kù)名稱的話,就會(huì)檢查指定數(shù)據(jù)庫(kù)中的表。每一個(gè)表后面的 OK 就是表示表狀態(tài)正常。
僅僅檢查表狀態(tài)有意義嗎?這個(gè)工具的作用可不僅限于此,它還可以進(jìn)行 CHECK TABLE,REPAIR TABLE,ANALYZE TABLE 和 OPTIMIZE TABLE 這些操作,只需要增加相應(yīng)的參數(shù)即可,比如說(shuō)我們使用 OPTIMIZE 去優(yōu)化表空間。
[root@localhost ~]# mysqlcheck -o test tt test.tt OK
-o 表示的就是 --optimize 的意思,其實(shí)實(shí)際就是在 mysql 客戶端中我們執(zhí)行針對(duì) tt 表的 OPTIMIZE TABLE 操作。不過(guò)這幾個(gè)操作更推薦在 MyISAM 上使用,效果也更好,而且更主要的是這些操作會(huì)鎖表,是非不得已情況下才要使用的命令和工具,所以大家先了解一下就好了。
總結(jié)
一口氣看了三個(gè)客戶端工具,非常簡(jiǎn)單,但是其實(shí)在我們的日常工作中卻并不是很常見。一般來(lái)說(shuō)可能在一些自己寫的 shell 運(yùn)維工具腳本中才能見到它們的身影。除了這三個(gè)之外,其實(shí)還有一些其它的客戶端工具,像是非常常用的 mysqldump ,這個(gè)工具我們?cè)趯?lái)學(xué)習(xí) MySQL 備份相關(guān)的內(nèi)容時(shí)再進(jìn)行深入的學(xué)習(xí)。
參考文檔:
https://dev.mysql.com/doc/refman/8.0/en/mysqladmin.html
https://dev.mysql.com/doc/refman/8.0/en/mysqlcheck.html#option_mysqlcheck_optimize
https://dev.mysql.com/doc/refman/8.0/en/mysqlshow.html
到此這篇關(guān)于mysqladmin、mysqlshow、mysqlcheck的工具使用的文章就介紹到這了,更多相關(guān)mysqladmin mysqlshow mysqlcheck內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL mysqladmin客戶端的使用簡(jiǎn)介
- 如何使用mysqladmin獲取一個(gè)mysql實(shí)例當(dāng)前的TPS和QPS
- 使用mysqladmin檢測(cè)MySQL運(yùn)行狀態(tài)的教程
- mysql DBA:mysqladmin常用命令總結(jié)
- 通過(guò)mysqladmin遠(yuǎn)程管理mysql的方法
- 如何使用myisamchk和mysqlcheck工具快速修復(fù)損壞的MySQL數(shù)據(jù)庫(kù)文件
- mysql中優(yōu)化和修復(fù)數(shù)據(jù)庫(kù)工具mysqlcheck詳細(xì)介紹
相關(guān)文章
MySQL server has gone away 問題的解決方法
MySQL server has gone away 問題解決方法,需要的朋友可以參考下。2010-06-06Mysql| 使用通配符進(jìn)行模糊查詢?cè)斀?like,%,_)
這篇文章主要介紹了Mysql| 使用通配符進(jìn)行模糊查詢?cè)斀?like,%,_),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08MySQL實(shí)現(xiàn)MYISAM表批量壓縮的方法
這篇文章主要介紹了MySQL實(shí)現(xiàn)MYISAM表批量壓縮的方法,實(shí)例分析了MySQL使用shell命令批量壓縮MYISAM表的相關(guān)技巧,需要的朋友可以參考下2016-04-04如何保護(hù)MySQL中重要數(shù)據(jù)的方法
在日常的工作中,保護(hù)數(shù)據(jù)免受未授權(quán)用戶的侵犯是系統(tǒng)管理員特別關(guān)心的問題。如果你目前用的是MySQL,就可以使用一些方便的功能來(lái)保護(hù)系統(tǒng),來(lái)大大減少機(jī)密數(shù)據(jù)被未授權(quán)用戶訪問的風(fēng)險(xiǎn)2011-10-10MySQL數(shù)據(jù)歸檔小工具mysql_archiver詳解
這篇文章主要介紹了MySQL數(shù)據(jù)歸檔小工具mysql_archiver詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12mysql 5.7.17 安裝配置方法圖文教程(windows10)
這篇文章主要為大家分享了mysql 5.7.17 安裝配置方法圖文教程,具有一定的參考價(jià)值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01