天天看點

有關MySQL奇技淫巧

有關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;

複制資料,不包括索引