如何在 mysql 中启用 binlog?文档说要使用以下命令启动服务器,--log-bin
但是当我这样做时:
service mysql start --log-bin=/binlog
我得到:
start: invalid option: --log-bin=/binlog
当我添加
log-bin = /binlog
它/etc/mysql/my.cnf
不记录任何内容。
答案1
“service mysql start” 不会接受特定于 mysql 的选项,因为这是 init 系统的命令。您需要将传递--log-bin
给 mysqld。但您应该更喜欢在配置文件中指定它 ;-)
在 my.cnf 的 [mysqld] 节中添加
log-bin = /path/to/log
有可能:
expire-logs-days = 14
max-binlog-size = 500M
server-id = 1
并注意指定的文件+路径必须可由 mysql 用户写入!您的示例指定了 /binlog。mysql 用户肯定不允许在 / 中写入文件。您可以指定一个相对路径,例如,log-bin=binlog
这将在已设置权限的 MySQL 数据目录中创建一个名为 binlog 的文件。
答案2
在 MySQL 5.7 中,你还需要添加server-id
以下内容
[mysqld]
server_id=master-01
log_bin
如果不添加该server_id
选项,服务器将不会启动。这是从MySQL 5.7 参考。
答案3
服务 mysqld 停止
编辑 /etc/mysql/my.cnf : 在日志和复制下找到 log_bin。取消对 log_bin 的注释
服务 mysqld 启动
答案4
你可以使用以下命令启动服务器
mysqld --log-bin=/binlog