在安裝、管理和使用mysql過程中,你是不是需要記憶很多的mysql命令。而且對於新手來說,很不多的命令不知道該如何應用,對於老手來說很多命令時間長了忘記具體的用法。
其實mysql的幫助信息,已經給我們提供很全面的使用方法。
下面我就大致介紹下,如何使用mysql的幫助信息。
說明:在此我只是為學習mysql提供一個思路,本篇文章不會過多講解每一個命令的使用方法。
一、mysql數據庫初始化
在安裝mysql進行初始化時,我們要使用mysql_install_db腳本進行初始化mysql數據庫,此時我們就可通過幫助命令實現。如下:
/usr/local/mysql/scripts/mysql_install_db --help
圖中的1、2、3表示初始化時mysql安裝的bin路徑、mysql數據目錄,以及運行mysql所使用的用戶。
現在我們進行初始化數據庫,如下:
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
通過上圖,我們也可以看到mysql數據庫已經初始化成功。同時系統也給出如何啟動mysql,圖中5標記出來。圖中6標記出來的是如何修改root用戶的密碼。
二、 mysql數據庫管理
2.1 啟動mysql使用mysqld_safe
mysql數據庫安裝完畢後,我們就要啟動mysql。啟動mysql時,我們可以通過mysql提供的腳本,也可以通過mysqld_safe命令來啟動。
其實mysql的腳本也是通過該命令來實現的,如下:
cat /etc/init.d/mysqld
有關mysqld_safe命令的使用,我們也可以查看幫助文檔。如下:
/usr/local/mysql/bin/mysqld_safe --help
我們需要關注defaults-file這個參數,這個參數加載的就是mysql的配置文件my.cnf。mysql的多實例部署就是根據加載不同的my.cnf文件來達到目的的。
現在我們來啟動mysql,如下:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
注意有一個參數在幫助文檔中我們是查不到的,就是跳過密碼驗證啟動mysql,這個參數為skip-grant-table。使用該參數啟動mysql,如下:
/usr/local/mysql/bin/mysqld_safe --skip-grant-table &
2.2 修改root用戶密碼使用mysqladmin
剛剛新安裝的mysql數據庫,root用戶密碼是空的。我們可以通過mysqladmin來查看如何修改root用戶密碼,如下:
/usr/local/mysql/bin/mysqladmin --help
修改root密碼,如下:
/usr/local/mysql/bin/mysqladmin -uroot password 123456
第一次修改root密碼,因為此時root密碼為空,我們可以這樣操作。如果root已經有密碼了,我們就要使用以下命令進行修改,如下:
/usr/local/mysql/bin/mysqladmin -uroot -p123456 password 456789
使用新密碼登錄mysql,如下:
/usr/local/mysql/bin/mysql -uroot –p456789
其中還要注意-S參數,這個在mysql多實例時會使用到,詳見《爛泥:mysql5.5多實例部署》。
2.3 備份mysql使用mysqldump
在備份mysql數據庫時,我們一般使用mysqldunmp命令,有關mysqldump命令的使用方法查看幫助文檔。如下:
/usr/local/mysql/bin/mysqldump --help
由於mysqldump的參數比較多,所以我們不一一介紹。但是有幾個參數需要重點介紹下。
-A表示備份整個數據庫
-F表示在執行導出之前將會刷新MySQL服務器的binlog
-e表示使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句)
--single-transaction 這個是當mysql是innodb引擎時,使用mysqldump備份建議要加上。
-S這個是mysql多實例使用的,詳見《爛泥:mysql5.5多實例部署》。
2.4 登錄mysql使用mysql
登錄或者連接mysql我們可以使用mysql命令,有關mysql命令的使用,查看幫助文檔。如下:
/usr/local/mysql/bin/mysql --help
在此我主要介紹下-e和-S這個參數。-e參數在mysql進行主從配置查看master庫的binlog文件名及pos位置節點時使用。-S參數mysql多實例使用,詳見《爛泥:mysql5.5多實例部署》。如下:
mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show master status"
注意以上命令都可以通過man進行查詢其使用方法。比如mysql命令:
man mysql
三、mysql數據庫使用
3.1 查看mysql數據庫版本
登錄mysql數據庫後,我們可以看到系統的提示命令,如下:
/usr/local/mysql/bin/mysql -uroot -p456789
通過上述截圖,我們可以看到目前mysql的版本是5.5.39。同時我們也注意到系統的提示:輸入help可以查看幫助信息,\c可以清空輸入。
3.2 查看help命令
查看help命令相關信息,如下:
help
通過上圖我們可以看到help命令很簡單的,在這我就不詳細的介紹了。只介紹system命令,該參數可以在mysql命令中直接執行系統的相關命令。如下:
system ifconfig eth0
3.3 查看mysql幫助索引
如果你一個mysql的使用命令都不知道,也沒有關系的。mysql給我提供了一個幫助索引。現在我們隨便輸入一個命令,看看mysql的提示如:
help eth0;
通過上圖,我們可以看到。當我們輸入一個不存在的命令時,系統會提示的。注意圖中標記出來的***部分“help contents”。
我們通過help contents就可以查看到所有的mysql命令,這個就是mysql幫助索引。如下:
help contents;
注意圖中標記出來的都是各個mysql總命令的總目錄。比如Account Management是負責管理mysql用戶有關的目錄、Administration是mysql管理員管理mysql有關的目錄。
我們所有的mysql命令,都是可以在這個索引下找的。
3.4 查看mysql如何創建用戶
我們要創建一個新的數據庫用戶,但是我們又不知道使用什麼命令進行創建,那我們就可以使用help contents查看所有的mysql命令目錄,根據目錄提示的信息我們猜想該命令應該在Account Management這個目錄下。那我們就可以先查看該命令的幫助,如下:
help Account Management;
通過上圖,我們可以看到創建用戶的命令確實在該目錄下,為create user命令。
有關create user命令的具體使用方法,我們可以在進一步通過help命令進行查看。如下:
help create user;
通過上圖,我們可以很明顯看到create user的具體使用方法,並且幫助信息中也給出相應的例子。
這樣我們知道,如何使用create user命令創建數據用戶了。
同理我們也可以查看如何刪除一個用戶,使用help drop user命令,如下:
help drop user;
3.5如何給用戶授權
我們在創建完畢數據庫用戶後,就要給該用戶授權。那麼如何授權,該使用什麼命令呢?
其實我們也可以在help Account Management命令中查看到,如下:
通過上圖我們可以看到grant就是授權命令。
我們再來查看grant命令的使用方法,如下:
help grant;
上圖就是grant的使用方法以及實例。同時系統也給出了如何查看用戶的權限使用show grants和如何刪除用戶的權限使用revoke。
同理我們也可以刪除一個用戶權限,使用help revoke命令進行查看,如下:
help revoke;
在這有一點需要說明下,我們在給用戶進行授權時,有時候不知道數據庫對用戶的權限都是什麼,其實我們也是可以通過系統給出的數據庫進行查詢到的。該數據庫為information_schema,如下:
use information_schema;
desc user_privileges;
select privilege_type from user_privileges;
表user_privileges的privilege_type字段存儲的就是mysql數據庫用戶的所有權限。
除此之外,我們也可以通過Administration下的privileges查看所有權限,這個方法是最簡單的。如下:
show privileges;
3.6 修改用戶密碼
修改數據庫用戶的密碼,我們也可以在help Account Management下進行查看。如下:
help Account Management;
通過上圖,我們可以知道修改用戶密碼的命令是set password。
下面我們來查看set password的具體用法,如下:
help set password;
通過上圖,我們可以知道set password的使用方法以及使用實例。
3.7如何新建mysql數據庫
如何新建一個mysql數據庫,我們可以通過help contents查看應該是在data definition。如下:
help contents;
help data definition;
通過上圖,我們可以看到創建數據庫的命令是create database。現在我們來具體查看下有關create database命令的使用方法,如下:
help create database;
上圖就是有關create database命令的詳細使用方法。
同時還要注意我們在查看help data definition命令時,標記出來的部分,如下:
我們可以看到這裡面還有創建表、創建表空間,刪除數據庫、刪除表、刪除表空間等命令,這個些命令我們就不一一介紹了。我們只需按照create database命令進行查詢其使用方法即可。
3.8如何更新數據庫的一個記錄
現在我們要更新數據庫中一張表的某一個字段的記錄,我們知道可以使用update命令。但是update命令的具體用法,我們忘記了。
嘿嘿,沒事,我們也可以通過help信息查看update命令的使用方法。
通過查看相關的信息,我們知道update命令在data manipulation目錄下面。如下:
help data manipulation;
現在我們來查看update的使用方法,如下:
help update;
通過上圖,我們就可以知道update命令的使用方法。
同時需要注意的是,我們在查看data manipulation時,也可以查看有關表的其他操作,查詢命令select、刪除命令delete、插入命令insert。
如下:
help data manipulation;
有關這些命令的使用方法,在此就不一一介紹了。我們只需按照update命令進行查詢其使用方法即可。
3.9如何刷新mysql日志
現在我們來查看如何在命令行下,刷新mysql日志。這個我們可以在help contents下的Administration進行查看。如下:
help Administration;
通過上圖,我們可以知道刷新mysql日志的命令為flush。現在查看該命令的具體使用方法。如下:
help flush;
通過上圖,我們可以看到刷新日志使用flush logs命令即可。如下:
show master status\G;
flush logs;
同時該幫助信息中,還給出了如何重置日志,使用reset命令。如下:
help reset;
其實在help Administration中,我們也能看到reset命令。如下:
3.10 刷新權限
有時候我們在使用update命令進行更新後,會發現相關權限沒有生效。這個時候我們就需要使用flush privileges命令進行刷新。
如下命令:
flush privileges;
其實flush幫助信息中,已經給我們進行說明了。如下:
3.11 查看show命令
通過3.9我們知道在Administration中有一個比較特別的命令show。
我們可以看到很多show相關的命令,如下:
help Administration;
這個show命令可以查看,我們在用戶授權、創建數據庫、創建表等執行時所使用的SQL語句。還可以查看數據庫引擎、數據庫狀態、表狀態等信息。
查看數據庫ilanni創建時執行的sql語句,如下:
show create database ilanni;
注意我們在創建數據庫ilanni時,是沒有指定數據庫使用的語言編碼的。但是系統會在執行sql語句時,自動加上語言編碼,並且使用默認的語言編碼latin1。
如果你記不清楚如何加上語言編碼的話,我們就可以創建一個數據庫。然後通過show create database命令進行查看,系統是是如何加上語言編碼的。然後我們再次刪除該數據庫,再次按照系統創建時的sql語言執行即可。
如下:
create database ilanni default character set utf8;
查看系統中的數據庫,如下:
show databases;
查看master庫binlog相關信息,如下:
show master status;
查看ilanni用戶授權sql語句,如下:
show grants for ilanni;
查看mysql數據庫的表,如下:
show tables;
3.12 查看主從相關的命令
我們在進行mysql主從配置時,會使用到很多很多的命令。這些命令,我們也可以通過幫助信息獲得。如下:
help contents;
help transactions;
注意上圖中,我們***標記出來的部分。主庫授予從庫的命令、鎖表命令、主庫master重置數據庫、開啟與關閉同步等命令。
我們在從庫上執行主庫的授權命令時,使用change master to命令。有關change master to命令的具體使用方法,查看幫助。如下:
help change master to;
通過上述兩張圖,我們就能很容易的知道change master to使用方法,並且幫助信息中也給出實際的例子。
我們在進行導出mysql數據庫時,為了保持主從數據庫的一致性,此時我們會通過lock命令進行鎖表。有關lock命令的使用,我們也可以通過幫助信息進行查看,如下:
help lock;
重置主庫master日志,如下:
help reset master;
reset master;
在從庫slave上開啟同步,如下:
help start slave;
start slave;
show slave status\G
在從庫slave上關閉同步,如下:
help stop slave;
stop slave;
show slave status\G
有關mysql主從同步的具體配置方法詳見《爛泥:mysql5.5主從同步復制配置》。