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