Mysqlでbinlogを有効にするにはどうすればよいですか?ドキュメントは--log-bin
でサーバーを起動するように言っていますが、私が実行すると:
service mysql start --log-bin=/binlog
私は得ます:
start: invalid option: --log-bin=/binlog
そして私が追加するとき
log-bin = /binlog
/etc/mysql/my.cnf
には何も記録されません。
「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というファイルが作成されます。
MySQL 5.7では、次のようにserver-id
を追加する必要もあります
[mysqld]
server_id=master-01
log_bin
server_id
オプションを追加しない場合、サーバーは起動しません。これは MySQL 5.7リファレンス からのものです。
mysqldサービスの停止
/etc/mysql/my.cnfを編集します。ロギングとレプリケーションの下でlog_binを見つけます。 log_binのコメントを解除します
mysqld startサービス