ホームページ  >  記事  >  データベース  >  MySQL マスター スレーブ サーバー ID が有効にならないサンプル コード (写真)

MySQL マスター スレーブ サーバー ID が有効にならないサンプル コード (写真)

黄舟
黄舟オリジナル
2017-03-11 14:04:513073ブラウズ

データベースがセットアップされ、すべての構成が完了しましたが、スレーブを開始すると、エラーが報告されます:

エラー 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 を見てみましょう

これは MySQL ホスティングです172.17.210.199私。 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

スレーブサーバーでSTARTスレーブコマンドを実行してスレーブを開始する

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 で修正してください
ので、ログを確認してください

1. SLAVE172.17.206.138 の MySQL エラー ログを確認してください。次の文があります:



141009 6:06:29 [エラー] サーバー ID が設定されていません。スレーブは開始されません これは、スレーブのサーバー ID が設定されていないことを意味します。

それは奇妙です。設定ファイルにサーバー ID を明確に指定して、mysql サービスを再起動しました。

マスターとスレーブでそれぞれ「show variables like 'server_id';」コマンドを実行します。

------スレーブ機で確認してください

ポート

mysql> START slave;
ネーミング設定は2なのに、どうして0になってしまうのでしょうか


------ホスト機で確認してください

rreee
設定と同じ。

パラメータファイルは有効にならないので、データベースコマンドで設定してみてください: スレーブマシン172.17.206.138でコマンドを実行します

mysql> mysql> SHOW VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 0     |
+---------------+-------+
1 row in set (0.00 sec)

スレーブマシン172.17.206.138でスレーブスタートとスレーブステータスの表示を再度実行すると成功します。


注意! ! ! 「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)

写真のように、写真でマークされている内容を[mysqld_safe]から[mysqld]に変更しました。



修正後、再び同期が成功しました!

りー

以上がMySQL マスター スレーブ サーバー ID が有効にならないサンプル コード (写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。