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