1. 程式人生 > >運維常用mysql語句

運維常用mysql語句

1.、select @@version; ##查詢當前mysql的版本.
2、 show variables like 'port';##檢視mysql例項的埠。
3、show variables like 'socket';##檢視例項的socket資料。
4、 show variables like 'datadir';##檢視例項的資料路徑。
5、show databases;   ##顯示所有資料庫名的命令 。
6、 desc tablename;   ## 顯示錶結構和列結構的命令。
7、show processlist \G;##顯示正在執行的執行緒。
8、explain ##檢視語句的執行計劃。
9、show index from table_name ##查看錶的索引情況。
10、 select * from STATISTICS where table_name='XXX'\G ##查看錶的統計資訊。
11、select @@max_allowed_packet; ## 查詢定義的packet大小。
12、show master status;##檢視master狀態。
      show slave status ;##檢視slave狀態。
13、 show master logs;##檢視所有的log檔案,在主伺服器上執行。
14、 purge binary logs to 'mysql-bin3306.000003';  #mysql-bin3306.000003之前的日誌被purge。
15、show warnings; ##顯示最近的警告詳情。
16、show variables \G; ##檢視當前mysqld的所有引數,包括預設值。
17、show grants for 'username'@'hostip' \G; ##檢視某一個使用者的許可權,請替換引數username 和 hostip。

18、 show create table tablename \G; ##檢視某表的建立指令碼
例項引數部分
19、show variables like 'log_slave%' \G; ##指定條件的引數設定查詢,例如查詢以log_slave開頭的引數設定。
20、 show variables like 'slow_query_log';##檢視是否開啟了慢查詢日誌;ON代表開啟。可以線上開啟。set global slow_query_log = 1;
21、 show variables like 'slow_query_log_file';## 檢視慢查詢日誌的路徑。
22、show variables like 'long_query_time'; ##檢視慢查詢定義的閾值,單位是秒。記錄的查詢是大於該值,不包括該值。
23、show variables like 'log_output'; ##檢視日誌的輸出格式(file或table)。
24、show variables like 'log_timestamps';##檢視日誌的時間資訊,UTC時間或者SYSTEM時間。
25、show variables like 'log_slow_slave_statements';##檢視從伺服器是否開啟慢查詢日誌,ON代表開啟。
26、show variables like 'log_queries_not_using_indexes';##將沒有使用索引的SQL語句記錄到慢查詢日誌中。
27、show variables like 'log_throttle_queries_not_using_indexes';##集合上面的引數一起使用,限制每分鐘內,在慢查詢日誌中,記錄沒有使用 
索引的次數。避免日誌快速增長。
28、show variables like "default%tmp%";檢視建立的臨時表的儲存引擎型別。
29、show variables like 'innodb_log_file_size';##查詢log檔案大小。
30、show variables like 'innodb_page_size'; ##查詢頁的大小。一旦資料庫通過innodb_page_size設定完成,則後續無法更改。innodb_page_size 
是針對普通表的,壓縮表不受限制。
31、show variables like 'innodb_buffer_pool_size';##檢視緩衝池的大小,每次讀寫資料都是通過buffer pool;當buffer pool中沒有所需的資料 
時,才去硬碟中獲取。該值設定的越大越好。buffer pool 也是以頁(page)為單位的,且大小和innodb_page_size一致。
32. show variables like 'innodb_buffer_pool_instances'; ##設定多少個緩衝池。設定多個instance可將熱點打散,提高併發效能(建議設定成cpu 
個數值)
33、show engine innodb status \G;##檢視buffer pool的狀態。
34、set global innodb_buffer_pool_size=2*1024*1024*1024;##線上調整innodb_buffer_pool_size。MySQL 5.7之前的版本,修改該值,需要重啟。
35、show variables like 'innodb_buffer_pool_dump_at_shutdown'; ##在MySQL 5.6 以後,可以在停機的時候dump出buffer pool的資料,然後在 
啟動的時候Load進buffer pool。該功能可以在MySQL啟動時自動預熱,無需人工干預。
36、show variables like 'innodb_buffer_pool_dump_pct';##dumpd 百分比,是每個buffer pool檔案,而不是整體。
37、show variables like 'innodb_buffer_pool_load_at_startup';## 啟動時載入dump的檔案,恢復到buffer pool中。dump的越多,啟動的越慢。
38、 select * from innodb_lock_waits;##檢視鎖的資訊,在資料庫sys下執行。
39、show variables like 'transaction_isolation'; ##檢視隔離級別
40、set transaction_isolation='read-committed'; ##設定隔離級別。
41、show variables like 'innodb_print_all_deadlocks';##設定為ON,表示將死鎖資訊列印到err_log中。
42、show variables like "%innodb_flush_log_at_timeout%";##master thread 每秒重新整理redo的buffer到logfile。5.7版本可以設定重新整理間隔時間, 
預設是1秒。
43、show variables like 'binlog_format';##檢視binlog的型別。statement 記錄SQL語句;ROW 記錄SQL語句操作的那些行(行的變化);mixed 混 
合statement 和 Row 格式(不推薦)。
MHA 常用命令 
44、masterha_check_ssh --conf=/etc/masterha/app1.conf    ##檢查MHA叢集SSH配置。
45、 masterha_check_repl --conf=/etc/masterha/app1.conf   ##檢查整個叢集的複製狀況。
46、masterha_check_status --conf=/etc/masterha/app1.conf ##檢查MHA Manager的狀態:如果正常,會顯示"PING_OK",否則會顯示"NOT_RUNNING" ,這代表MHA監控沒有開啟。
47、nohup masterha_manager --conf=/etc/masterha/app1.conf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 & ###監控程序通過nohup管理,可以通過jobs檢視後臺程序。
48、show slave hosts;##在master節點上執行,檢視Slave節點資料。
49、 CHANGE MASTER TO MASTER_HOST='172.XXX.XXX.XXX',MASTER_USER='replname',MASTER_PASSWORD='pwd',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154; ##change master 示例
50、 若在Slave機器上對資料庫進行修改或者刪除,會導致主從的不一致,需對Slave機器設定為read_only = 1 ,讓Slave提供只讀操作。
   注意: read_only 僅僅對沒有SUPER許可權的使用者有效(即 mysql.user表的Super_priv欄位為Y),一般給App 的許可權是不需要SUPER許可權的。引數super_read_only 可以將有SUPER許可權的使用者也設定為只讀,且該引數設定為ON 後, read_only 也跟著自動設定為ON。
51、 show variables like "server_uuid";## 檢視UUID。 GTID(G lobal T ransaction Id entifier) 全域性事物ID。GTID = Server_UUID + 
Transaction_ID 其中 Server_UUID 是全域性唯一的,Transaction_ID 是自增的。
52、show variables like "%gtid%";##檢視gtid相關資料及配置
53、從伺服器跳過一個錯誤的事務
    步驟1: 關閉複製
    stop slave;
    步驟2 : 設定 gtid_next 為回放失敗的gtid
    set session gtid_next='4e659069-3cd8-11e5-9a49-001c4270714e:1'; #在session裡設定gtid_next,即跳過這個GTID
    步驟3 : 執行一個空的事物,讓回放失敗的gtid對應到這個空的事物
    begin;
    commit;
    步驟4 : 還原gtid_next為automatic
    SET SESSION GTID_NEXT = AUTOMATIC; #把gtid_next設定回來
    步驟5: 開啟複製
    start slave;
54、通過GTID的複製都是沒有指定MASTER_LOG_FILE和MASTER_LOG_POS的,所以通過GTID複製都是從最先開始的事務開始,除非在自己的binlog裡面有執行過之前的記錄,才會繼續後面的執行。Slave如何跳過purge的部分,而不是在最先開始的事務執行。
     步驟1:在主上執行,檢視被purge的GTID
     show global variables like 'gtid_purged';

     以下步驟在從上執行,跳過這個GTID: 
     步驟2 
    stop slave;
    步驟3
    reset master;
    步驟4
    start slave;

55、show binlog events in 'mysql-bin.000008'; ##檢視指定binlog中的內容。
56、 flush binary logs;#重新整理日誌,並且會產生一個新的日誌檔案。
57、show variables like "binlog_rows_query_log_events";##設定為ON,可以在ROW格式下,看到SQL的資訊。
58、show variables like "binlog_cache_size";##binlog預設寫入到binlog_cache中,系統預設是32K,當有一個大的事務時(幾百兆),記憶體中顯然 
放不下那麼多binlog,所以會記錄到磁碟上。
59、 show global status like 'binlog_cache_disk_use';##記錄了使用臨時檔案寫二進位制日誌的次數。注意:寫日誌本來就停滿的,如果cache寫不下, 
再寫入磁碟,然後再寫binlog,就是寫入2次磁碟,會更慢。如果引數binlog_cache_disk_use次數很多,就要看一下binlog_cache_size設定是否太小, 
或者事務本身是否太大。
60、xtrabackup 只能備份innodb儲存引擎表(用的較少);innobackupex可以備份其他儲存引擎(含innodb)。innobackupex在xtrabackup的基礎上做 
了包裝,可以相容各種儲存引擎。
61、mysqldump重要引數 --all-databases :備份所有的資料庫;--databases DB1 [DB2 DB3] :備份指定的資料庫;--single-transaction : 在一個 
事物中匯出,確保產生一致性的備份,當前只對innodb支援;--master-data : 備份的時候dump出CHANGE MASTER 資訊(file 和 pos),可供主從複製 
的時候使用, 預設值為1,當值設定為2 的時候,也會dump出資訊,但是會被註釋掉 。
62、show variables like '%slave_parallel_workers%';##從資料庫用來還原的併發執行緒數。