MYSQL有不同類型的日志文件(各自存儲了不同類型的日志),從它們當中可以查詢到MYSQL裡都做了些什麼,對於MYSQL的管理工作,這些日志文件是不可缺少的。
1.錯誤日志(The error log):記錄了數據庫啟動、運行以及停止過程中錯誤信息;
2.ISAM操作日志(The isam log):記錄了所有對ISAM表的修改,該日志僅僅用於調試ISAM模式;
3.SQL執行日志(The query log):記錄了客戶端的連接以及所執行的SQL語句;
4.更新日志(The update log):記錄了改變數據的語句,已經不建議使用,由二進制日志替代;
5.二進制日志(The binary log):記錄了所有對數據庫數據的修改語句;
6.超時日志(The slow log):記錄所有執行時間超過最大SQL執行時間(long_query_time)或未使用索引的語句;
如果你是在用mysql的復制、備份功能,那麼從服務器還提供了一種叫做relay log的日志文件。
默認情況下所有日志文件會記錄在MYSQL的數據目錄下,你可以通過強制mysql去關閉並重新打開一個文件進行日志記錄,當然系統會自動加後綴(如.00001, .00002),方式有在mysql環境下執行語句 mysql>flush logs; 或者通過mysqladmin管理程序執行 #mysqladmin flush-logs 或 #mysqladmin refresh
這些日志的啟動方式可以在mysqld_safe方式啟動數據庫的時候,後面跟選項參數,也可以在配置文件裡配置,推薦采用第二種方式,配置方法很簡單,我只配置了三種日志:
[mysqld] log=/var/log/mysqld_common.log log-error=/var/log/mysqld_err.log log-bin=/var/log/mysqld_bin.bin
查看
日志的查看很簡單,大部分都是文本,直接用vim、less、more之類的工具看就可以了,值得說明的是二進制文件的查看:
1). 首先確定是否開啟了二進制文件記錄功能
mysql>show variables like 'log_bin';2). 如果你想知道現在記錄二進制數據的文件具體信息,你可以通過下列語句看到現在正在記錄哪個文件,以及記錄的當前位置:
mysql>show master status;
3). 查看二進制數據需要借助程序mysqlbinlog,看看它支持哪些選項,根據自己需要來使用。
mysql>mysqlbinlog /var/log/mysql/mysql-bin.000040;
查詢某個時間范圍的可以執行下列語句,如果記錄很多可以將結果定向到一個文件裡自己慢慢看:-) :
mysql>mysqlbinlog --start-datetime='2008-01-01 00:00:00' --stop-datetime='2008-08-08 00:00:00' /var/log/mysql/mysql-bin.000040 > ./tmp.log
導出
MySQL的數據庫導出有很多種,我現在就介紹一下MySQL自帶的mysqldump命令導出導入。
注:導出時,按照mysql表編碼導出。如果導入時,mysql服務器端的編碼不和表一致,導入出錯。
1、MySQL導出整個數據庫表結構及數據命令:
mysqldump -u用戶名 -p密碼 dbName>f:\路徑+導出SQL的名稱
注:生成.sql文件,可是是多個數據庫,多個數據庫用逗號分隔。
2、MySQL導出數據庫單個表表結構及數據命令:
mysqldump -u用戶名 -p密碼 數據庫名 表名 >f:\路徑+導出SQL的名稱
注:多個表可以用逗號分隔。
3、MySQL導出整個數據庫表結構命令:
mysqldump -u用戶名 -p密碼 -d 數據庫名>f:\路徑+導出SQL的名稱
注:整個數據庫表結構,生成.sql文件。
4、MySQL導出數據庫單個表結構命令:
mysqldump -u用戶名 -p密碼 -d 數據庫名 表名 >f:\路徑+導出SQL的名稱
注:單個表結構,生成.sql文件,可是多張表。多表以空格區分
導入
MySQL的導入:
1)進入cmd
2)
mysql -h localhost -u用戶名 -p密碼
3)
mysql -h -localhost -u用戶名 -p密碼 進入mysql create database test use test source f:\test.sql