ホームページ データベース mysql チュートリアル スレーブは同じ MySQL サーバー UUID を持っています

スレーブは同じ MySQL サーバー UUID を持っています

Feb 15, 2017 am 10:50 AM

最近、MySQL マスター/スレーブ レプリケーション アーキテクチャをデプロイしているときに、「Last_IO_Error: 致命的なエラー: マスターとスレーブの MySQL サーバー UUID が等しいため、スレーブ I/O スレッドが停止します。レプリケーションが機能するには、これらの UUID が異なる必要があります。」エラーが発生しました。メッセージ。つまり、同じ UUID がマスター/スレーブ アーキテクチャで使用されます。 server_id システム変数を確認してください。すでに異なる設定になっています。理由は何ですか?以下に詳細な説明を記載します。

1、错误消息
mysql> show slave staus;
 
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; 
these UUIDs must be different for replication to work.
 
2、查看主从的server_id变量
master_mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 33    |
+---------------+-------+

slave_mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 11    |
+---------------+-------+
-- 从上面的情形可知,主从mysql已经使用了不同的server_id

3、解决故障
###查看auto.cnf文件
[root@dbsrv1 ~] cat /data/mysqldata/auto.cnf  ### 主上的uuid
[auto]
server-uuid=62ee10aa-b1f7-11e4-90ae-080027615026

[root@dbsrv2 ~]# more /data/mysqldata/auto.cnf ###从上的uuid,果然出现了重复,原因是克隆了虚拟机,只改server_id不行
[auto]
server-uuid=62ee10aa-b1f7-11e4-90ae-080027615026

[root@dbsrv2 ~]# mv /data/mysqldata/auto.cnf  /data/mysqldata/auto.cnf.bk  ###重命名该文件
[root@dbsrv2 ~]# service mysql restart          ###重启mysql
Shutting down MySQL.[  OK  ]
Starting MySQL.[  OK  ]
[root@dbsrv2 ~]# more /data/mysqldata/auto.cnf  ###重启后自动生成新的auto.cnf文件,即新的UUID
[auto]
server-uuid=6ac0fdae-b5d7-11e4-a9f3-0800278ce5c9


###再次查看slave的状态已经正常
[root@dbsrv1 ~]# mysql -uroot -pxxx -e "show slave status\G"|grep Running
Warning: Using a password on the command line interface can be insecure.
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

###主库端查看自身的uuid
master_mysql> show variables like 'server_uuid';
+---------------+--------------------------------------+
| Variable_name | Value                                |
+---------------+--------------------------------------+
| server_uuid   | 62ee10aa-b1f7-11e4-90ae-080027615026 |
+---------------+--------------------------------------+
1 row in set (0.00 sec)

###主库端查看从库的uuid
master_mysql> show slave hosts;
+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID                           |
+-----------+------+------+-----------+--------------------------------------+
|        33 |      | 3306 |        11 | 62ee10aa-b1f7-11e4-90ae-080027615030 |
|        22 |      | 3306 |        11 | 6ac0fdae-b5d7-11e4-a9f3-0800278ce5c9 |
+-----------+------+------+-----------+--------------------------------------+
### Author : Leshami
### Blog   : http://www.php.cn/
ログイン後にコピー


4. Yansheng リファレンス
a、server_id の説明
各マスターとスレーブに一意の ID を与えるためにレプリケーションで使用されるサーバー ID。この変数は --server-id オプションによって設定されます。レプリケーションに参加するサーバーごとに、そのサーバーの ID として機能する

b 、server_uuid の説明

MySQL 5.6 以降、サーバーはユーザーが指定した --server-id に加えて真の UUID を生成します。これはグローバルな読み取り専用変数 server_uuid

(global Read) -only 変数) 起動時に、MySQL サーバーは次のように UUID を自動的に取得します:
a) ファイル data_dir/auto.cnf (data_dir はサーバーのデータ ディレクトリ) に書き込まれた UUID の読み取りと使用を試みます。 ); 成功すると終了します。

b) それ以外の場合は、新しい UUID を生成してこのファイルに保存し、必要に応じてファイルを作成します。

auto.cnf ファイルの形式は、my.cnf または my.ini に使用されるものと似ています。 MySQL 5.6 では、auto.cnf には、単一の server_uuid [1992] 設定と



値を含む単一の [auto] セクションのみがあります。auto.cnf ファイルは自動的に生成されます。このファイルを書き込んだり変更したりしないでください

また、MySQL 5.6 以降、MySQL レプリケーションを使用する場合、マスターとスレーブは一方の UUID を認識し、他方の UUID を確認できます。 SHOW SLAVE HOSTS の出力。START SLAVE が実行されると (事前ではありません)、マスターの UUID の値は、SHOW SLAVE STATUS の出力でスレーブで利用可能になります。MySQL 5.6.5 では、その後、サーバーの server_uuid は、そのサーバー上で開始されるトランザクションの GTID にも使用されます
詳細については、セクション16.1.3「グローバル トランザクションによるレプリケーション

」を参照してください。上記は、等しい MySQL サーバー UUID を持つスレーブの内容です。関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? May 05, 2024 am 09:06 AM

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

PHP 配列ページングのパフォーマンス最適化戦略 PHP 配列ページングのパフォーマンス最適化戦略 May 02, 2024 am 09:27 AM

PHP 配列ページングのパフォーマンス最適化戦略

See all articles