Mysql

如何使 binlog-format=ROW 成為 /etc/my.cnf 文件中的啟動預設值?

  • March 2, 2021

我可以執行查詢**SET GLOBAL binlog_format = ‘ROW’**並且它適用於該會話。

停止並重新啟動 MySQL 後,如何使此設置保持不變?

注意:我使用的是 MySQL 5.5.19 版本(帶有 Moodle),我剛剛從 MyISAM 升級到 InnoDB,因此需要這個新設置。

我嘗試將這兩個命令(單獨)添加到 my.cnf:binlog-format=ROWbinlog_format=ROW,但都不起作用。每次更改 my.cnf 時,我都會停止並重新啟動 MySQL。

沒有設置這個我得到的錯誤是邪惡的錯誤消息:

調試資訊:無法執行語句:無法寫入二進制日誌,因為 BINLOG_FORMAT = STATEMENT 並且至少一個表使用僅限於基於行的日誌記錄的儲存引擎。當事務隔離級別為 READ COMMITTED 或 READ UNCOMMITTED 時,InnoDB 僅限於行日誌記錄。

我認為您的問題可能源於您編寫指令的位置

確保將選項[mysqld]放在 /etc/my.cnf 的標題下

[mysqld]
binlog_format = ROW

如果將它放在任何其他標題下,mysqld 程序將看不到它。

試一試 !!!

3 binlog_format 的值

[mysqld]
binlog_format = ROW
[mysqld]
binlog_format = STATEMENT
[mysqld]
binlog_format = MIXED

引用自:https://dba.stackexchange.com/questions/65273