【MySQL解惑筆記】Mysql5.7.x無法開啟二進位制日誌

旅行者-Travel發表於2018-09-19

一、開啟二進位制日誌

1)未開啟二進位制日誌之前:

mysql> show variables like `log_bin`;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |     #二進位制日誌是關閉的
+---------------+-------+
1 row in set (0.00 sec)

mysql> 

2)開啟二進位制日誌

修改my.cnf並且將以下引數加入其中,重啟mysql例項:

log_bin=mysql-bin  #其中mysql-bin代表的是basename就是生成二進位制日誌檔案的字首部分,預設的位置在datadir目錄下,也可以設定為其他的路徑
server-id=11   #由於bug問題必須設定這個id,數字隨便寫

datadir=/var/lib/mysql   #預設指定檔案存放位置,可修改,但是要注意許可權

重啟伺服器:

systemctl restart mysqld

3)檢視開啟狀態;

mysql> show variables like `log_bin`;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)

注:在my.cnf中設定好log-bin之後,log_bin自動設定為ON,basename設定為mysql-bin,index檔案也自動生成,index檔案記錄的就是所有的二進位制檔案的名稱及位置資訊.
mysql
> show variables where variable_name in (`log_bin`,`log_bin_basename`,`log_bin_index`); +------------------+--------------------------------+ | Variable_name | Value | +------------------+--------------------------------+ | log_bin | ON | | log_bin_basename | /var/lib/mysql/mysql-bin | | log_bin_index | /var/lib/mysql/mysql-bin.index | +------------------+--------------------------------+ 3 rows in set (0.01 sec) mysql>

4)注意事項

在官方文件中,說啟用binary log只是需要將log-bin=mysql-bin設定即可,但是因為有bug,所以必須要設定server-id否則啟動不成功.

官方文件解釋如下:

If you specify the --log-bin option without also specifying a --server-id, the server is not allowed to start. (Bug #11763963, Bug #56739) 

 

參考部落格:https://www.cnblogs.com/chuanzhang053/p/9335924.html

 

相關文章