データベースがセットアップされ、すべての構成が完了しましたが、スレーブを開始すると、エラーが報告されます:
エラー 1200 (HY000): サーバーは構成ファイルまたは CHANGE で修正されていません。 MASTER TO
ここではスレーブとして設定していないと書かれていますが、明らかに設定しています。
MySQL バージョン: 5.6.19
マスター: マスター IP: 172.17.210.199
スレーブ IP: 172.17.206.138
まずスレーブ 172.17.206.138 の my.cnf を見てみましょう
[root@liuyazhuang ~]# vi /etc/my.cnf [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock skip-grant-tables user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 tmpdir=/tmp [mysqld_safe] log-error=/usr/local/data/mysqld.log pid-file=/usr/local/mysql/data/mysqld.pid ###############以下是添加主从的配置 server_id = 2 log-bin = /usr/local/mysql/log/solve-bin.log master-host = 172.17.210.199 master-user = test master-pass = 123456 master-port = 3306 master-connect-retry = 60マスターとスレーブを何度も再起動しようとしましたが、それでもエラーが報告されました;その後、
[root@liuyazhuang ~]$ cat /etc/my.cnf [mysqld] log-bin = /u01/mysql/log/masters-bin.log read-only = 0 basedir = /u01/mysql datadir = /u01/mysql/data port = 3306 server_id = 1 socket = /tmp/mysql.sock join_buffer_size = 128M sort_buffer_size = 2M read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
mysql> CHANGE MASTER TO MASTER_HOST='172.17.210.199', MASTER_USER='test', MASTER_PASSWORD='123456', MASTER_LOG_FILE='masters-bin.000003', MASTER_LOG_POS=120; Query OK, 0 rows affected, 2 warnings (0.04 sec)に手動で変更した後も、同じエラーが報告されました。
エラー:
エラー 1200 (HY000): サーバーはスレーブとして構成されていません。構成ファイルまたは CHANGE MASTER TO で修正してください
ので、ログを確認してください
141009 6:06:29 [エラー] サーバー ID が設定されていません。スレーブは開始されません これは、スレーブのサーバー ID が設定されていないことを意味します。
マスターとスレーブでそれぞれ「show variables like 'server_id';」コマンドを実行します。
ポートmysql> START slave;
ネーミング設定は2なのに、どうして0になってしまうのでしょうか
rreee
設定と同じ。
mysql> mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 0 | +---------------+-------+ 1 row in set (0.00 sec)
注意! ! ! 「SET GLOBAL server_id=;」コマンドはmysqlサービスの再起動後に失われるため、設定ファイルに書き込む必要があります。 しかし、前に変更した my.cnf ファイルが機能しないのはなぜですか? 注意深く調査した結果、設定に [mysqld] と [mysqld_safe] があることがわかりました。変更された設定内容は、基本的に [mysqld_safe] の下に配置されます。新しく追加された設定ファイルは別の場所に配置されても問題ありません。そこで、変更した部分を設定ファイルの[mysqld]配下に置こうとしたので、次のように変更しました。
mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 1 | +---------------+-------+ 1 row in set (0.00 sec)
修正後、再び同期が成功しました!
りー
以上がMySQL マスター スレーブ サーバー ID が有効にならないサンプル コード (写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。