我想通它寫出來的一些指引,以幫助大家了解自己的MySQL服務器的不同方面,可能會有所幫助。
這個數據已經收集到隨著時間的推移,我會盡我所能,參考文章。 總體考慮在這裡列出你最好的信息來源:
- MySQL文檔:dev.mysql.com / DOC
 - Percona的性能博客
 - planet.mysql.com
 - forums.mysql.com
 - 蒙蒂知識庫kb.askmonty.org / EN /
 - http://lists.mysql.com/
 
你知不知道到數據庫的密碼? 如果它不使用mysql_config_editor(前5.6)你可以做一個小挖找出來。 否則,你必須重新啟動它,並迫使自己的方式。我們假設你不想重新啟動它。 如果你必須弄清楚如何使用-跳過發放表檢討以前的一些博客文章的例子: http://anothermysqldba.blogspot.com/search/label/--skip-grant-tables
因此,首先一些放在尋找密碼。 這也意味著,如果你做這些人以後可以找到密碼。
- 找出是否有人在命令行上使用的密碼。
 - 歷史| grep的mysql的
 - 的的crontab-l
 - 如果你看到備份腳本或等這些腳本輸入密碼
 - my.cnf中定位。
 - bash_history的貓| grep的mysql的
 - 嘗試的mysql沒有密碼的,但當然希望是你的盒子是安全的。
 - 隨著MySQL 5.6的檢查,如果你已經有一個配置的帳戶
 - mysql_config_editor打印 - 所有
 
跳轉到MySQL服務器之前先知道一點關於你的服務器。
這些信息有些你可能只知道,但為了安全起見。
例如在Linux系統上運行以下操作系統,發行版,內存,磁盤信息。
- 貓的/ etc / *釋放
 - uname-a的
 - DF-啊
 - 安裝
 - 自由米
 - 頂部
 - 超過這個職位的Swappiness資訊http://www.mysqlplus.net/tag/swappiness/
 - 你有一個特定的cnf的文件正在使用?
 - 用ps-ef | grep的MYSQL | grep的CNF
 - DATADIR:
 - 用ps-ef | grep的MYSQL | grep的DATADIR
 
所以,現在跳轉到MySQL服務器,並開始收集一些數據。 my.cnf文件審查雖然可以給你的大部分信息,你還可以收集從服務器。
 show variables like '%log%';  看在你的錯誤(ERR)文件審查任何問題。 這應該是一個地方,你看一個錯誤後啟動等
因此,如何在服務器上運行? 為了迅速收集以下運行狀態的命令。
- 版本
 - 主題
 - 問題
 - 慢速查詢
 - 打開
 - FLUSH TABLES
 - 打開表
 - 平均每秒查詢
 
 mysql> status  “mysqladmin的擴展狀態”命令,也可以給你的信息,但在服務器內使用grep也是有效的。
密切留意以下信息。
這也被張貼在這裡http://www.techrepublic.com/blog/opensource/10-mysql-variables-that-you-should-monitor/56
您可以查看帖子中提到,看到一個漂亮的表,解釋了一些這些值。 這些都是我想你應該留意雖然。
 > show status like 'Handler_read_first'; 
 > show status like 'Key_reads'; 
 > show status like 'Select_full_join';  找出您的查詢運行速度慢的百分比整體。 希望這是一個小數目。
使用狀態信息來填充這些變量進行快速檢查。
 set @slow_queries=<value in the status output>; 
 set @questions=<value in the status output>; 
 SELECT ROUND(100* (@slow_queries /  @questions),2) "Slow Query percentage" \G  學習了解的輸出:SHOW ENGINE INNODB STATUS \ G
盯緊死鎖信息,這樣你就可以開始調試那些。
您的系統是否有觸發器,事件的存儲過程?
 mysql> SELECT db, name FROM mysql.proc; 
 mysql> SELECT TRIGGER_SCHEMA , TRIGGER_NAME  FROM information_schema.TRIGGERS ; 
 mysql> SELECT EVENT_NAME FROM information_schema.EVENTS ;  知道你的服務器變量
 show variables like '%innodb%'; 
 show variables like '%thread%'; 
 show variables like '%table%'; 
 show variables like '%buffer%'; 
 show variables like '%cache%';  檢查您的用戶帳戶。
它們都具有有效的密碼。
 SELECT Host, User , 
 CASE 
 WHEN  CHARACTER_LENGTH(Password) = 16 THEN 'Pre-4.1 I should update this' 
 WHEN  CHARACTER_LENGTH(Password) > 16 THEN 'Valid password' 
 WHEN  CHARACTER_LENGTH(Password) =0 THEN ' BLANK PASSWORD so I just do not care if people steal my stuff' 
 END as Password 
 FROM mysql.user;  了解你的InnoDB日誌文件,並想出一個良好的緩衝池大小。
男爵張貼在這裡: http://www.mysqlperformanceblog.com/2008/11/21/how-to-calculate-a-good-innodb-log-file-size/
閱讀他的文章,以了解更多有關。 下面是一個例子,如何使用此信息。 我用他的號碼的例子幫助。 像男爵說,運行在交通繁忙時得到有效的信息。
 mysql>pager grep sequence; show engine innodb status\G select sleep(60); show engine innodb status\G  pager; 
 mysql>SET @sequence1= 3836410803; 
 mysql>SET @sequence2= 3838334638; 
 mysql>select ( ( (@sequence2 - @sequence1) / 1024 / 1024 )* 60 ) /2 as innodb_log_file_size_used ; 
 mysql>select (@@innodb_log_file_size / 1024) / 1024 as current_log_file_MB_size;  緩衝池大小。
雖然下面的查詢周圍網發布,並給出一個有效的緩衝池起點,我也看到了一些無效的或不切實際的數字,根據它的服務器上。 就個人而言,檢討的結果,下面的查詢。 高峰流量和金額數據發送到每男爵後的日誌審查結果。 然後考慮你有多少內存在服務器上。 你的數據庫在內存中運行的速度就越快,得到的結果,但你必須考慮到,什麼是數據庫做。 所以,你必須使用自己的緩衝池的大小,以獲得良好的價值判斷和研究。 另一個選項可以使用tools.percona.com,回答問題,並看看它會告訴你什麼。
 mysql>select ( ( (@sequence2 - @sequence1) / 1024 / 1024 )* 60 ) *2  as innodb_buffer_pool_GB_test ; 
 
 mysql>SELECT CONCAT(ROUND(KBS/POWER(1024, 
 IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999), 
 SUBSTR(' KMG',IF(PowerOf1024<0,0, 
 IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size 
 FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables 
 WHERE engine='InnoDB') A, 
 (SELECT 3 PowerOf1024) B \G  接下來,你應該檢討這個開放方舟博客文章挖成索引等。 該帖子和網站整體的大的信息。
http://code.openark.org/blog/mysql/useful-database-analysis-queries-with-information_schema
挖掘到更多有關服務器的數據....
什麼是最古老的表,也許需要存檔這些嗎?
 SELECT CONCAT(`TABLE_SCHEMA`, "." , `TABLE_NAME`) as name , `UPDATE_TIME` 
 FROM information_schema.TABLES 
 WHERE TABLE_SCHEMA NOT IN 
('information_schema','mysql','test','performance_schema')  AND 
`UPDATE_TIME` IS NOT NULL ORDER BY `UPDATE_TIME` LIMIT 25;  什麼是空間?
 SELECT concat(table_schema,'.',table_name) table_name, 
 concat(round(data_length/(1024*1024),2),'M') data_length 
 FROM information_schema.TABLES 
 ORDER BY data_length DESC LIMIT 5;  這僅僅是一個起點,讓你了解正在發生的事情與您的服務器。 使用本網站列出的網站了解更多信息。