バイナリロギングをオンにしてMySQLデータベースを実行しています。データベースが再起動されるたびに、新しいバイナリログファイルが次の形式で作成されます。
mysql-bin.00001
mysql-bin.00002
...
mysql-bin.0000n
私の質問は、データベースを再起動するたびにバイナリログファイルを同じままにしておく方法はありますか.
したがって、たとえば、常にmysql-bin.00001です。
どんな助けでも大歓迎です。
あなたができる5つの(5)方法があります
再起動を実行しないでください。シャットダウンと起動の間にバイナリログを削除します。
mysql-bin.*
が/var/lib/mysql
にあるとします。以下を実行します。
cd /var/lib/mysql
service mysql stop
rm -f mysql-bin.*
service mysql start
起動後、mysqlにログインして実行します
SHOW MASTER STATUS;
mysql-bin.000001
が表示されます
RESET MASTER;
を実行するスクリプトを作成して実行する
ステップ01:この行をmy.cnf
グループヘッダーの下の[mysqld]
に追加します
[mysqld]
init-file=/var/lib/mysql/init.sql
ステップ02:以下を実行します
echo "RESET MASTER;" > /var/lib/mysql/init.sql
chown mysql:mysql /var/lib/mysql/init.sql
ステップ03:service mysql restart
手作業で行います。 mysqlにログインして実行します
mysql> RESET MASTER;
再起動後すぐにバイナリログを消去する
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
service mysql restart
mysql ${MYSQL_CONN} -e"RESET MASTER"
ステップ01:my.cnf
に移動し、log-bin
オプションをコメント化します
[mysqld]
#log-bin=mysql-bin
または、log-bin = mysql-binという行を削除します
ステップ02:以下を実行します
cd /var/lib/mysql
service mysql stop
rm -f mysql-bin.*
service mysql start
ステップ03:mysqlにログインして実行する
mysql> SHOW BINARY LOGS;
出力は
ERROR 1381 (HY000): You are not using binary logging
real質問とは何ですか?
ますます多くのバイナリログが積み重なることに悩まされているなら、
expire_logs_days = 7
これにより、binlogが7日間だけ保持されます。それは1 binlogかもしれません(常に起きている場合)。 100になる可能性があります(とんでもない頻度で再起動した場合)。しかし、彼らは永遠に積み重なることはありません。
なんらかの理由でbinlogが有効になっていると思います-リカバリ?バックアップ?等? Rolandoが彼の方法のいくつかで示唆しているように、それらのそれぞれはあなたが盲目的にバイナリログを捨てることができません。