基礎部分 1. select @@version; ##查詢當前mysql的版本. 2. show variables like 'port';##查看mysql實例的埠。 3. show variables like 'socket';##查看實例的socket數據。 4. show varia ...
基礎部分
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節點數據。
50. 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 示例
51. 若在Slave機器上對資料庫進行修改或者刪除,會導致主從的不一致,需對Slave機器設置為read_only = 1 ,讓Slave提供只讀操作。
註意: read_only 僅僅對沒有SUPER許可權的用戶有效(即 mysql.user表的Super_priv欄位為Y),一般給App 的許可權是不需要SUPER許可權的。參數super_read_only 可以將有SUPER許可權的用戶也設置為只讀,且該參數設置為ON 後, read_only 也跟著自動設置為ON。
52. show variables like "server_uuid";## 查看UUID。 GTID(G lobal T ransaction Id entifier) 全局事物ID。GTID = Server_UUID +
Transaction_ID 其中 Server_UUID 是全局唯一的,Transaction_ID 是自增的。
53. show variables like "%gtid%";##查看gtid相關數據及配置
54.從伺服器跳過一個錯誤的事務
步驟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;
55. 通過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;
其他部分
56. show binlog events in 'mysql-bin.000008'; ##查看指定binlog中的內容。
57. flush binary logs;#刷新日誌,並且會產生一個新的日誌文件。
58. show variables like "binlog_rows_query_log_events";##設置為ON,可以在ROW格式下,看到SQL的信息。
60. show variables like "binlog_cache_size";##binlog預設寫入到binlog_cache中,系統預設是32K,當有一個大的事務時(幾百兆),記憶體中顯然
放不下那麼多binlog,所以會記錄到磁碟上。
61. show global status like 'binlog_cache_disk_use';##記錄了使用臨時文件寫二進位日誌的次數。註意:寫日誌本來就停滿的,如果cache寫不下,
再寫入磁碟,然後再寫binlog,就是寫入2次磁碟,會更慢。如果參數binlog_cache_disk_use次數很多,就要看一下binlog_cache_size設置是否太小,
或者事務本身是否太大。
62.xtrabackup 只能備份innodb存儲引擎表(用的較少);innobackupex可以備份其他存儲引擎(含innodb)。innobackupex在xtrabackup的基礎上做
了包裝,可以相容各種存儲引擎。
63 .mysqldump重要參數 --all-databases :備份所有的資料庫;--databases DB1 [DB2 DB3] :備份指定的資料庫;--single-transaction : 在一個
事物中導出,確保產生一致性的備份,當前只對innodb支持;--master-data : 備份的時候dump出CHANGE MASTER 信息(file 和 pos),可供主從複製
的時候使用, 預設值為1,當值設置為2 的時候,也會dump出信息,但是會被註釋掉 。
64. show variables like '%slave_parallel_workers%';##從資料庫用來還原的併發線程數。