今天試用mysqlbinlog竟然報了這個錯,無法繼續執行,而且mysql也不認爲是一個bug,暈!
原因:
[client]下的選項會被所有客戶端程序讀取(但不包括mysqld),但是mysqlbinlog卻不能識別default-character-set,而當客戶端不能識別時就會報錯並退出,不在繼續執行。可以使用loose-variable_name=xxx來解決。
三種解決方法:
1. 修改my.cnf,在[client]下注釋或刪除default-character-set=gbk;
2. 在命令行中加入--no-defaults開關,使用mysqlbinlog --no-defaults;
3. 將default-character-set=gbk改爲(不需重啓):
[client]
loose-default-character-set=gbk
這樣,所有不能識別該變量的客戶端程序(包括mysqlbinlog)都會忽略它,4.0.2以上版本有效;但是執行mysqlbinlog時還是會有以下警告:
Warning: mysqlbinlog: unknown variable 'loose-default-character-set=gbk'
參考:http://bugs.mysql.com/bug.php?id=11673