有關MySQL奇技淫巧(一般都是Linux下試過的,其它平台自行嘗試)
0、學會檢視MySQL錯誤日志
日志名一般為HOST_NAME.err,在裡面說不定很容易找到你想要的東西
1、開啟MySQL General Query Log
想檢視MySQL執行了哪些SQL語句?
那麼就開啟這個日志吧
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html
可以通過啟動mysqld加入相關參數或者動态開啟
當然最友善的還是動态開啟(不用重新開機資料庫,貌似對MySQL版本有要求)
中文參考:http://www.taobaodba.com/html/477_動态開啟mysql-general-log.html
mysql> set global log_output = file;
mysql> set global general_log_file=’/home/guohai/dev/x/topics/mysql/sql.log’;
mysql> set global general_log=on;
還有個要求就是MySQL對該日志檔案有讀寫權限,我把它的own和group全改成跟MySQL對應的了,要不然報錯
關閉隻需要
mysql> set global general_log=off;
2、innotop使用
去http://code.google.com/p/innotop/下載下傳最新版的安裝包,這裡用的是innotop-1.8.0
按照安裝說明安裝好,更詳細的安裝說明可以參見http://crazytoon.com/2008/05/21/mysql-how-do-you-install-innotop-to-monitor-innodb-in-real-time/
可能innotop版本不一樣,自己稍微變通下
第一次運作innotop的時候會叫你輸入一些配置資訊,比如資料庫連結資訊
這個你可以在~/.innotop/innotop.conf中修改
[email protected]:~/.innotop$ tree
.
|– innotop.conf
`– plugins
1 directory, 1 file
man innotop是永遠不能少的
另外可以參見http://5iwww.blog.51cto.com/856039/570669
http://blog.csdn.net/qiuyepiaoling/archive/2010/11/29/6042379.aspx
3、mysql指令的一些有用參數選項
生産環境中手工操作資料庫是個技術活
有些參數可以友善我們擷取需要的資料,或者節省我們的時間
一些明顯的資訊提示或許可以幫助我們減少出錯的機率
比如
mysql>prompt \h:\u@\d>
PROMPT set to ‘\h:\u@\d>’
localhost:[email protected]>
這樣你就明顯的看到,你是在哪台機器,使用者是什麼,操作的資料庫是什麼
下面是别人總結出來有用的
http://www.developer.com/db/10-command-line-timesavers-for-mysql-tasks.html
http://www.ningoo.net/html/2008/mysql_cmdline_html_xml_prompt.html
自己也可以檢視手冊找到一些有用的資訊
4、create table log_20110630 like log_template;
like子句會複制表結構,包括索引等,不包括權限
create table log_20110701 as select * from log_20110630;
複制資料,不包括索引