バイナリログをチェックしようとしているとき:
SHOW BINARY LOGS;
次のエラーが表示されます。
エラー 1381 (HY000): バイナリ ログを使用していません。
これを解決するには?誰でも助けることができますか?
バイナリログをチェックしようとしているとき:
SHOW BINARY LOGS;
次のエラーが表示されます。
エラー 1381 (HY000): バイナリ ログを使用していません。
これを解決するには?誰でも助けることができますか?
MySQL 構成ファイルで変数を設定してlog-bin
から、MySQL を再起動します。
例my.cnf
(Linux/unix の場合) またはmy.ini
(Windows の場合) は次のようになります。
[client]
...
[mysqld]
...
log-bin=mysql-bin
---
再起動すると、MySQL は自動的に新しいバイナリ ログを作成します (再起動するたびに作成します)。次の変数を確認することもできます。
server-id = 1
expire_logs_days = 4
sync_binlog = 1
詳細については、MySQL のドキュメントを参照してください。レプリケーションのセットアップ (バイナリ ログを使用する主な理由) の後である場合は、レプリケーション構成のチェックリストを確認してください。
ライン
log-bin=mysql-bin
行の上に配置する必要があります:
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
起動時にバイナリログを有効にする必要があります
[mysqld] セクションの下の /etc/my.cnf に次の行を追加します。
[mysqld]
log-bin=mysql-bin
expire-logs-days=7
次に、これを実行します
service mysql restart
次に mysql にログインすると、バイナリ ログの一覧が表示され、7 日後にローテーション アウトします。
バイナリ ログのデフォルトの場所は、/var/lib/mysql
または datadir が定義されている場所です。binlog 名の前にフォルダーを指定すると、そのフォルダーが場所になります。
例えば
[mysqld]
log-bin=/var/log/mysql-bin
expire-logs-days=7
次のように mysql を再起動し、バイナリ ログがオンになっているかどうかをお知らせください。
service mysql restart --log-bin=mysql-bin
バイナリ ログを有効にするには、 --log-bin[=base_name] オプションを指定してサーバーを起動します。
base_name の値が指定されていない場合、デフォルトの名前は pid-file オプションの値 (デフォルトではホスト マシンの名前) の後に -bin が続きます。
ベース名が指定されている場合、別のディレクトリを指定する絶対パス名を先頭に付けてベース名が指定されていない限り、サーバーはファイルをデータ ディレクトリに書き込みます。ベース名を指定することをお勧めします。
または、次を直接使用できます。
log-bin=mysql-bin
次に、mysql サービスを再起動します。するとバイナリファイルが生成されます。Linux マシンで lampp を使用している場合、このファイルは /lampp/var/mysql/mysql-bin.000001 にあります。
FWIW、 my.cnf.master ファイルと my.cnf.slaveファイルをセットアップして、それぞれマスターとスレーブのmy.cnfにシンボリック リンクしようとした後、同じ問題が発生しました。アイデアは、マシンをマスターからスレーブに簡単に切り替えることができるようにすることでした。
mysqld が期待どおりにシンボリック リンクを処理しなかったことが判明しました。ファイルのハードリンクが機能しました( ln my.cnf.master my.cnf)。ハードリンクされたファイル名の 1 つを上書きすると、リンクが壊れて代わりに 2 つの別個のファイルが作成される可能性があるため、このようなことを行う場合は注意してください (使用するソフトウェアで採用されている書き換え方法によって異なります)。
セクション [mysqld_safe] を削除し、[mysqld] に置き換えます。わたしにはできる。