mysqladmin、mysqlshow、mysqlcheck的工具使用
在日常的使用中,我們一般使用 mysql 客戶端工具來進(jìn)行日常的數(shù)據(jù)庫操作,但其實(shí),整個 MySQL 系統(tǒng)所提供的客戶端工具遠(yuǎn)不止 mysql 一個。今天,我們就來簡單地了解一下另外三個工具,分別是 mysqladmin、mysqlshow、mysqlcheck 。
mysqladmin
mysqladmin 這個命令行工具其實(shí)大家應(yīng)該多少會接觸過一點(diǎn),它的作用是用于管理操作一些服務(wù)器配置和當(dāng)前的狀態(tài)信息,并且可以創(chuàng)建數(shù)據(jù)庫。比如說我們?nèi)?chuàng)建一個新數(shù)據(jù)庫。
[root@localhost ~]# mysqladmin create ma_test;
同時,它也可以用于查看一些服務(wù)器的狀態(tài)信息,比如說我們經(jīng)常會使用的 processlist ,就可以直接使用 mysqladmin 來查看。
[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)然,還有更多的功能,比如說修改密碼、查看變量信息、關(guān)閉服務(wù)、刷新表等等功能。這里就不一一進(jìn)行演示了,有興趣的小伙伴可以自己嘗試一下。
mysqlshow
這個客戶端工具主要是用于快速顯示數(shù)據(jù)庫信息,可以看到數(shù)據(jù)庫是否存在表或者表的列以及索引信息。它的作用其實(shí)非常類似于在 mysql 中的 SHOW 的作用。
[root@localhost ~]# mysqlshow +--------------------+ | Databases | +--------------------+ | information_schema | | ma_test | | mysql | | performance_schema | | sys | | test | | test1 | +--------------------+
直接使用這個工具,其實(shí)就是類似于 SHOW DATABASES; 的作用。在上面顯示的內(nèi)容中,可以看到前面我們剛剛使用 mysqladmin 創(chuàng)建的 ma_test 庫。我們也可以指定數(shù)據(jù)庫名稱,這樣就可以看到這個數(shù)據(jù)庫下的表信息。
[root@localhost ~]# mysqlshow test Database: test +----------+ | Tables | +----------+ | db_test | | raw_test | | t | +----------+
接下來我們再把表名指定上,直接就可以獲取到這個表中列字段的信息。
[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 | | +-------+------+-----------+------+-----+---------+-------+---------------------------------+---------+
非常有意思吧,可以直接在命令行中就獲取到庫、表、列的信息。另外我們還可以加一些參數(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 的簡寫,它的作用是顯示詳細(xì)的信息,這里寫了兩個會多出兩列,分別表示列的數(shù)據(jù)和行的數(shù)量。如果只有一個 -v 的話,則只顯示列的數(shù)據(jù)信息。
mysqlcheck
最后我們再來看看 mysqlcheck 這個工具,它的作用是進(jìn)行表的維護(hù),可以檢查、修復(fù)、優(yōu)化或者分析表。沒錯,也是我們可以在 mysql 客戶端中進(jìn)行的一些操作,在這里可以直接通過這個外部命令行工具來實(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
這個命令行工具如果不指定數(shù)據(jù)庫名稱的話,就需要使用 --all-databases 參數(shù),這樣就會檢查所有庫中的所有表,如果指定了數(shù)據(jù)庫名稱的話,就會檢查指定數(shù)據(jù)庫中的表。每一個表后面的 OK 就是表示表狀態(tài)正常。
僅僅檢查表狀態(tài)有意義嗎?這個工具的作用可不僅限于此,它還可以進(jìn)行 CHECK TABLE,REPAIR TABLE,ANALYZE TABLE 和 OPTIMIZE TABLE 這些操作,只需要增加相應(yīng)的參數(shù)即可,比如說我們使用 OPTIMIZE 去優(yōu)化表空間。
[root@localhost ~]# mysqlcheck -o test tt test.tt OK
-o 表示的就是 --optimize 的意思,其實(shí)實(shí)際就是在 mysql 客戶端中我們執(zhí)行針對 tt 表的 OPTIMIZE TABLE 操作。不過這幾個操作更推薦在 MyISAM 上使用,效果也更好,而且更主要的是這些操作會鎖表,是非不得已情況下才要使用的命令和工具,所以大家先了解一下就好了。
總結(jié)
一口氣看了三個客戶端工具,非常簡單,但是其實(shí)在我們的日常工作中卻并不是很常見。一般來說可能在一些自己寫的 shell 運(yùn)維工具腳本中才能見到它們的身影。除了這三個之外,其實(shí)還有一些其它的客戶端工具,像是非常常用的 mysqldump ,這個工具我們在將來學(xué)習(xí) MySQL 備份相關(guān)的內(nèi)容時再進(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL server has gone away 問題的解決方法
MySQL server has gone away 問題解決方法,需要的朋友可以參考下。2010-06-06Mysql| 使用通配符進(jìn)行模糊查詢詳解(like,%,_)
這篇文章主要介紹了Mysql| 使用通配符進(jìn)行模糊查詢詳解(like,%,_),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧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,就可以使用一些方便的功能來保護(hù)系統(tǒng),來大大減少機(jī)密數(shù)據(jù)被未授權(quán)用戶訪問的風(fēng)險2011-10-10MySQL數(shù)據(jù)歸檔小工具mysql_archiver詳解
這篇文章主要介紹了MySQL數(shù)據(jù)歸檔小工具mysql_archiver詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12mysql 5.7.17 安裝配置方法圖文教程(windows10)
這篇文章主要為大家分享了mysql 5.7.17 安裝配置方法圖文教程,具有一定的參考價值,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01