上篇我們介紹了binlog(參見mysql的binlog),配置文件用的是linux下的my.cnf,那么在windows下如何打開binlog呢?道理是相同的,配置文件是不一樣的。在windows下我們需要配置my.ini,同名但不同后綴名。我們先來看我本地mysql的binlog開關是否打開:
mysql> show variables like '%log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | OFF | | log_bin_basename | | | log_bin_index | | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+-------+ 6 rows in set, 1 warning (0.00 sec)
很明顯並沒有打開,那么我們需要先找到my.ini,再進行binlog的開關配置。我本地mysql是從官網上下載的5.7版本壓縮包后解壓得到的,找了半天並沒有找到my.ini。這是因為mysql的5.7版本壓縮包里確實沒有my.ini這個配置文件。我們只能自己動手來創建一個my.ini,並把binlog的開關配置一並放進去:
[mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] # 設置3306端口 port = 3306 # 設置mysql的安裝目錄 basedir=D:\Dev\mysql\mysql-5.7.26-winx64 # 允許最大連接數 max_connections=200 # 服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB # 打開binlog log_bin=mysql-binlog # Server Id.數據庫服務器id,這個id用來在主從服務器中標記唯一mysql服務器 server-id=1
標黃的是我本地mysql安裝目錄,該my.ini文件也放到這里。最后一項是mysql5.7版本需要加上去的,用於識別該mysql服務器ID,不加啟動會報錯的。當文件創建后用管理員身份運行Windows命令行,重啟mysql:
C:\WINDOWS\system32>net stop mysql MySQL 服務正在停止.. MySQL 服務已成功停止。 C:\WINDOWS\system32>net start mysql MySQL 服務正在啟動 . MySQL 服務已經啟動成功。
再來看下binlog的開關:
mysql> show variables like '%log_bin%'; +---------------------------------+----------------------------------------------------------+ | Variable_name | Value | +---------------------------------+----------------------------------------------------------+ | log_bin | ON | | log_bin_basename | D:\Dev\mysql\mysql-5.7.26-winx64\data\mysql-binlog | | log_bin_index | D:\Dev\mysql\mysql-5.7.26-winx64\data\mysql-binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+----------------------------------------------------------+ 6 rows in set, 1 warning (0.00 sec)
這次binlog打開了。