mysqlのマスターとスレーブの同期設定方法は?
MySQLのマスタースレーブレプリケーションを設定するには、以下の手順を実行する必要があります。
- メインデータベースの配置:
- 主要データベースの設定ファイル(通常はmy.cnfまたはmy.ini)を開き、バイナリログ機能を有効にします。以下の行を追加してください: log-bin = mysql-bin server-id = 1
- 設定を有効にするために、メインデータベースを再起動してください。
- データベース(Slave)からの配置:
- データベースの設定ファイルを開き、サーバー機能を有効にします。以下の行をファイルに追加してください:server-id = 2
- データベースを再起動して、設定を有効にします。
- 主データベースで複製用のユーザーを作成する:
- メインデータベースにログインして、次のSQLステートメントを実行して複製ユーザーを作成します:CREATE USER ‘replication_user’@’%’ IDENTIFIED BY ‘password’;
‘%’ の ‘replication_user’ に対して *.* 上の REPLICATION SLAVE を付与します;
PRIVILEGES を FLUSH します。 - 主データベースをバックアップし、バックアップを復元してサブデータベースを作成します。
- 日本語:メインデータベースで以下のコマンドを実行して、データベースのバックアップファイルを作成します:mysqldump -u ユーザー名 -p データベース名 > バックアップ.sql
- バックアップファイルをデータベースに転送し、次のコマンドを使用してバックアップをリストアしてください:mysql -u ユーザー名 -p データベース名 < バックアップファイル名.sql
- データベースでのマスタースレーブ関係の設定:
- データベースにログインし、以下のSQL文を実行してください:CHANGE MASTER TO MASTER_HOST=’master_ip’、MASTER_USER=’replication_user’、MASTER_PASSWORD=’password’、MASTER_LOG_FILE=’mysql-bin.000001’、MASTER_LOG_POS=123。ここで、’master_ip’はメインデータベースのIPアドレス、’mysql-bin.000001’はメインデータベース内の最新のバイナリログファイル、123はメインデータベース内の複製位置です。
- データベースからの複製プロセスを開始します。
- SQL文を実行して、レプリケーションプロセスを開始します:START SLAVE;
- 同期状態を確認します。
- 主従同期状態を確認するために、次のSQLステートメントを実行してください:SHOW SLAVE STATUS\G”Slave_IO_Running”と”Slave_SQL_Running”の値が”YES”であれば、主従同期が正常に設定されていることを示します。
MySQLのマスターとスレーブの同期設定は、これで完了です。マスターデータベースでの更新操作は自動的にスレーブデータベースにコピーされます。