一鲜滩、服務(wù)啟動(dòng)與停止命令
net start mysql (啟動(dòng)服務(wù))
net stop mysql (終止服務(wù))
二盯拱、登錄登出命令
mysql -u用戶名 -p密碼 -h連接的主機(jī)IP -p端口號 (登錄)
exit腹侣、quit(登出)
三蚂四、修改密碼命令
1款票、登錄mysql跃捣;
2谱醇、use mysql;
3暇仲、update user set password=PASSWORD('新密碼') where user='用戶名';
4、flush privileges;#更新權(quán)限
5副渴、quit;#退出
四奈附、增加新用戶
1、 首先以root用戶連入Mysql
2纽疟、 grant 權(quán)限 on數(shù)據(jù)庫名 to用戶名@登錄主機(jī) identified by“密碼”;
3域醇、 flush privileges; 更新權(quán)限
常見權(quán)限猾瘸,用戶管理命令權(quán)限及詳解可參看博客http://www.toxingwang.com/database/mysql/1468.html
全局管理權(quán)限:
FILE: 在MySQL服務(wù)器上讀寫文件。
PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程佑颇。
RELOAD: 重載訪問控制表,刷新日志等草娜。
SHUTDOWN: 關(guān)閉MySQL服務(wù)挑胸。
數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:
ALTER: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。
CREATE: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表宰闰。
DELETE: 刪除表的記錄茬贵。
DROP: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。
INDEX: 建立或刪除索引移袍。
INSERT: 增加表的記錄解藻。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄葡盗。
特別的權(quán)限:
ALL: 允許做任何事(和root一樣)螟左。
USAGE: 只允許登錄--其它什么也不允許做。
五觅够、數(shù)據(jù)庫基本操作
show databases; (顯示數(shù)據(jù)庫)
use 數(shù)據(jù)庫名; (使用數(shù)據(jù)庫)
show tables; (顯示表)
describe 表名; (顯示表結(jié)構(gòu))
create database 數(shù)據(jù)庫名;(建數(shù)據(jù)庫)
drop database 數(shù)據(jù)庫名;(刪除數(shù)據(jù)庫)
create table 表名(定義列);(建表)
drop table 表名;(刪除表)
update 表名 set字段=新值,... where條件 (修改表中數(shù)據(jù))
alter table 表名 add字段類型其他;(在表中增加字段)
rename table 原表名 to新表名; (更改表名)
update 表名 set字段名 =新內(nèi)容
update 表名 set字段名 = replace(字段名, '舊內(nèi)容', '新內(nèi)容');(更新字段內(nèi)容)
insert into <表名> values(字段值,字段值,……),……路狮;(插入數(shù)據(jù))
delete from 表名 where表達(dá)式(刪除表中數(shù)據(jù))
六、狀態(tài)查看命令(Mysql運(yùn)行狀態(tài)及調(diào)優(yōu)詳解可參看博客http://www.cnblogs.com/gzgccsu/archive/2013/01/23/2873579.html)
Show status; (查看Mysql運(yùn)行狀態(tài))
Show processlist; (查看哪些線程正在運(yùn)行蔚约,前100條)
Show full processlist; (查看哪些線程正在運(yùn)行奄妨,全部)
Show open tables; (查看那些表是打開的,可查看表是否被線程使用)
Show status like ‘%lock%’;(查看服務(wù)器狀態(tài))
Show engine innodb status\G; (查看InnoDB引擎運(yùn)行時(shí)信息)
Show variables like‘%timeout%’;(查看服務(wù)器配置參數(shù))
state列具體釋義: Checking table 正在檢查數(shù)據(jù)表(這是自動(dòng)的)苹祟。Closing tables 正在將表中修改的數(shù)據(jù)刷新到磁盤中砸抛,同時(shí)正在關(guān)閉已經(jīng)用完的表评雌。這是一個(gè)很快 的操作,如果不是這樣的話直焙,就應(yīng)該確認(rèn)磁盤空間是否已經(jīng)滿了或者磁盤是否正處
于重負(fù)中景东。Connect Out 復(fù)制從服務(wù)器正在連接主服務(wù)器。Copying to tmp table on disk 由于臨時(shí)結(jié)果集大于 tmp_table_size奔誓,正在將臨時(shí)表從內(nèi)存存儲轉(zhuǎn)為磁盤存儲以
此節(jié)省內(nèi)存斤吐。Creating tmp table 正在創(chuàng)建臨時(shí)表以存放部分查詢結(jié)果。deleting from main table 服務(wù)器正在執(zhí)行多表刪除中的第一部分厨喂,剛刪除第一個(gè)表和措。deleting from reference tables 服務(wù)器正在執(zhí)行多表刪除中的第二部分,正在刪除其他表的記錄蜕煌。Flushing tables 正在執(zhí)行 FLUSH TABLES 等待其他線程關(guān)閉數(shù)據(jù)表派阱。Killed 發(fā)送了一個(gè)kill請求給某線程,那么這個(gè)線程將會檢查kill標(biāo)志位斜纪,同時(shí)會放棄下
一個(gè)kill請求贫母。MySQL會在每次的主循環(huán)中檢查kill標(biāo)志位,不過有些情況下該線程可能會過一小段才能死掉盒刚。如果該線程程被其他線程鎖住了腺劣,那么kill請求會在鎖釋放時(shí)馬上生效。
Locked 被其他查詢鎖住了因块。Sending data 正在處理 SELECT 查詢的記錄橘原,同時(shí)正在把結(jié)果發(fā)送給客戶端。Sorting for group 正在為 GROUP BY 做排序贮聂。Sorting for order 正在為 ORDER BY 做排序靠柑。Opening tables 這個(gè)過程應(yīng)該會很快,除非受到其他因素的干擾吓懈。例如歼冰,在執(zhí) ALTER TABLE 或
LOCK TABLE 語句行完以前,數(shù)據(jù)表無法被其他線程打開耻警。 正嘗試打開一個(gè)表
Removing duplicates 正在執(zhí)行一個(gè) SELECT DISTINCT 方式的查詢隔嫡,但是MySQL無法在前一個(gè)階段
優(yōu)化掉那些重復(fù)的記錄。因此甘穿,MySQL需要再次去掉重復(fù)的記錄腮恩,然后再把結(jié)果發(fā)送給客戶端。
Reopen table 獲得了對一個(gè)表的鎖温兼,但是必須在表結(jié)構(gòu)修改之后才能獲得這個(gè)鎖秸滴。已經(jīng)釋放鎖, 關(guān)閉數(shù)據(jù)表募判,正嘗試重新打開數(shù)據(jù)表荡含。Repair by sorting 修復(fù)指令正在排序以創(chuàng)建索引咒唆。Repair with keycache 修復(fù)指令正在利用索引緩存一個(gè)一個(gè)地創(chuàng)建新索引。它會比上一條慢些释液。Searching rows for update 正在講符合條件的記錄找出來以備更新全释。它必須在 UPDATE 要修改相關(guān)的記錄之
前就完成了。Sleeping 正在等待客戶端發(fā)送新請求.System lock 正在等待取得一個(gè)外部的系統(tǒng)鎖误债。如果當(dāng)前沒有運(yùn)行多個(gè) mysqld 服務(wù)器同時(shí)請
求同一個(gè)表浸船,那么可以通過增加 –skip-external-locking參數(shù)來禁止外部系統(tǒng)鎖。
Upgrading lock INSERT DELAYED 正在嘗試取得一個(gè)鎖表以插入新記錄寝蹈。Updating 正在搜索匹配的記錄李命,并且修改它們。User Lock 正在等待 GET_LOCK()躺盛。Waiting for tables 該線程得到通知项戴,數(shù)據(jù)表結(jié)構(gòu)已經(jīng)被修改了形帮,需要重新打開數(shù)據(jù)表以取得新的結(jié)構(gòu)槽惫。
然后,為了能的重新打開數(shù)據(jù)表辩撑,必須等到所有其他線程關(guān)閉這個(gè)表界斜。
七、導(dǎo)出和導(dǎo)入數(shù)據(jù)合冀、備份與恢復(fù)(博文鏈接http://blog.chinaunix.net/uid-16844903-id-3411118.html)
(注:‘省略’代表著如下固定參數(shù):-routines代表備份函數(shù)與存儲過程
-u$USER -p$PASSWD -h127.0.0.1 -P3306 —routines—default-character-set=utf8)
————————導(dǎo)出各薇、備份————————
1、 導(dǎo)出全部數(shù)據(jù)庫備份(-A全庫備份)
mysqldump 省略—lock-all-tables —add-drop-database -A > db.all.sql
2君躺、 導(dǎo)出指定數(shù)據(jù)庫到本地目錄峭判,例如mysql數(shù)據(jù)庫(--databases數(shù)據(jù)庫名)
mysqldump 省略 --databases mysql > db.sql
3、 導(dǎo)出指定數(shù)據(jù)庫的指定表到本地目錄棕叫,例如mysql數(shù)據(jù)庫的user表(--tables數(shù)據(jù)庫名表名)
mysqldump 省略 --tables mysql user> db.table.sql
4林螃、 導(dǎo)出指定數(shù)據(jù)庫的指定表(僅數(shù)據(jù))到本地目錄,例如mysql數(shù)據(jù)庫的user表俺泣,帶過濾條件
mysqldump 省略 --no-create-db --no-create-info --tables mysql user --where="host='localhost'"> db.table.sql
5疗认、導(dǎo)出某個(gè)數(shù)據(jù)庫的表結(jié)構(gòu)(--no-data不備份數(shù)據(jù))
mysqldump 省略 --no-data --databases mysql > db.nodata.sql
6、導(dǎo)出某個(gè)sql查詢的數(shù)據(jù)以txt文件形式存儲到到本地的目錄(各數(shù)據(jù)值之間用"制表符"分隔)
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 --skip-column-names -B -e 'select user,host,password from mysql.user;' > mysql_user.txt
7伏钠、導(dǎo)出某個(gè)sql查詢的數(shù)據(jù)以txt文件形式存儲到到MySQL服務(wù)器横漏,登錄MySQL,將默認(rèn)的制表符換成逗號.(適應(yīng)csv格式文件),指定的路徑,mysql要有寫的權(quán)限熟掂。最好用tmp目錄,文件用完之后,再刪除!
SELECT user,host,password FROM mysql.user INTO OUTFILE '/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';
————————導(dǎo)入缎浇、恢復(fù)————————
1、 恢復(fù)全庫數(shù)據(jù)到MySQL,因?yàn)榘琺ysql庫的權(quán)限表,導(dǎo)入完成需要執(zhí)行FLUSH PRIVILEGES;命令
第一種方法:
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 < db.all.sql
第二種方法:
登錄MySQL,執(zhí)行source命令,后面的文件名要用絕對路徑.
......
mysql> source /tmp/db.all.sql;
2赴肚、恢復(fù)某個(gè)庫的數(shù)據(jù)(mysql庫的user表)
第一種方法:
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql < db.table.sql
第二種方法:
登錄MySQL,執(zhí)行source命令,后面的文件名要用絕對路徑.
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> source /tmp/db.table.sql;
3素跺、恢復(fù)MySQL服務(wù)器上面的txt格式文件(需要FILE權(quán)限,各數(shù)據(jù)值之間用"制表符"分隔)
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> LOAD DATA INFILE '/tmp/mysql_user.txt' INTO TABLE user ;
4鹏秋、恢復(fù)MySQL服務(wù)器上面的csv格式文件(需要FILE權(quán)限,各數(shù)據(jù)值之間用"逗號"分隔)
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> LOAD DATA INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
5、恢復(fù)本地的txt或csv文件到MySQL
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
txt
mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.txt' INTO TABLE user;
csv
mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
關(guān)于mysql參數(shù)
--skip-column-names 不顯示數(shù)據(jù)列的名字
-B 以批處理的方式運(yùn)行mysql程序.查詢結(jié)果將顯示為制表符間隔格式.
-e 執(zhí)行命令后,退出
關(guān)于mysqldump參數(shù)
-A 全庫備份
--routines 備份存儲過程和函數(shù)
--default-character-set=utf8 設(shè)置字符集
--lock-all-tables 全局一致性鎖
--add-drop-database 在每次執(zhí)行建表語句之前,先執(zhí)行DROP TABLE IF EXIST語句
--no-create-db 不輸出CREATE DATABASE語句
--no-create-info 不輸出CREATE TABLE語句
--databases 將后面的參數(shù)都解析為庫名
--tables 第一個(gè)參數(shù)為庫名后續(xù)為表名
關(guān)于LOAD DATA語法
如果LOAD DATA語句不帶LOCAL關(guān)鍵字,就在MySQL的服務(wù)器上直接讀取文件,且要具有FILE權(quán)限.
如果帶LOCAL關(guān)鍵字,就在客戶端本地讀取數(shù)據(jù)文件,通過網(wǎng)絡(luò)傳到MySQL.
LOAD DATA語句,同樣被記錄到binlog,不過是內(nèi)部的機(jī)制.
八亡笑、mysqladmin指令(所有命令可以被縮短為其唯一的前綴)
create databasename (創(chuàng)建一個(gè)新數(shù)據(jù)庫)
drop databasename (刪除一個(gè)數(shù)據(jù)庫及其所有表)
Extended-status (給出服務(wù)器的一個(gè)擴(kuò)展?fàn)顟B(tài)消息)
Flush-hosts (洗掉所有緩存的主機(jī))
Flush-logs (洗掉所有日志)
Flush-tables (洗掉所有表 )
Flush-privileges (再次裝載授權(quán)表(同reload) )
kill id,id,... (殺死MySQL線程)
Password (新口令侣夷,將老口令改為新口令)
Ping (檢查mysqld是否活著 )
Processlist (顯示服務(wù)其中活躍線程列表)
Reload (重載授權(quán)表 )
Refresh (洗掉所有表并關(guān)閉和打開日志文件)
Shutdown (關(guān)掉服務(wù)器)
Status (給出服務(wù)器的簡短狀態(tài)消息)
Variables (打印出可用變量)
Version (得到服務(wù)器的版本信息)
九、Mysqld命令詳解參看博客http://blog.itpub.net/29500582/viewspace-1373451/
十仑乌、Mysql日志管理詳解參看博客http://www.toxingwang.com/database/mysql/1483.html
十一百拓、Mysql索引詳解參看博客http://blog.csdn.net/zhangliangzi/article/details/51366345
十二、Mysql事務(wù)詳解參看博客http://www.toxingwang.com/database/mysql/1454.html
十三晰甚、Mysql鎖定機(jī)制詳解參看博客http://www.toxingwang.com/database/mysql/1454.html
十四衙传、常見sql指令可參看《mysql必知必會》