Debian / UbuntuでMySQLマスター/スレーブレプリケーションをセットアップする

前書き

重要なWebサイトを実行している場合、少なくとも1つの冗長バックアップサーバーがあることを確認することが重要です。これにより、データベースがリアルタイムで同期されます。MySQLはデータベースの同期をレプリケーションと呼びます。この短いチュートリアルでは、マスター/スレーブMySQLレプリケーションをセットアップする方法について説明します。

マスターノードをセットアップする

編集/etc/mysql/my.cnfしてIPバインディングを無効にします。

次の行をコメント化します。

bind-address = 127.0.0.1
skip-networking

次のコマンドを実行して、レプリケーションの新しい設定を作成します。

cat >/etc/mysql/conf.d/replication.cnf <<EOF
[mysqld]
server-id = 100
log_bin = /var/log/mysql/mysql-bin.log
binlog-do-db = YOUR_DATABASE_ONE
binlog-do-db = YOUR_DATABASE_TWO
EOF

MySQLサーバーを再起動します。

/etc/init.d/mysql restart

MySQLコンソールで次のコマンドを実行して、MySQLでスレーブユーザーを作成します。

CREATE USER 'slave'@'SLAVE_SERVER_IP_ADDRESS' identified by 'YOUR_SLAVE_PASSWORD';
GRANT ALL ON *.* TO 'slave'@'SLAVE_SERVER_IP_ADDRESS';
FLUSH PRIVILEGES;

次に、データベースへの書き込みアクセスをロックします。

FLUSH TABLES WITH READ LOCK;

マスターノードのステータスを取得します。

SHOW MASTER STATUS;

注:スレーブノードで後で参照する必要があるので、「ファイル」フィールドと「位置」フィールドの値を書き留めます。

別のSSHセッションを開き、次のコマンドを使用してデータベースをダンプします。

mysqldump -u MYSQL_USERNAME -pMYSQL_PASSWORD --databases YOUR_DATABASE_ONE YOUR_DATABASE_TWO > database.sql

前のSSHセッションに戻り、MySQLコンソールで次のコマンドを発行して書き込みアクセスをロック解除します。

UNLOCK TABLES;

転送database.sqlスレーブノードに前のステップで作成しました。

スレーブノードをセットアップする

編集/etc/mysql/my.cnfしてIPバインディングを無効にします。

次の行をコメント化します。

bind-address = 127.0.0.1
skip-networking

次のコマンドを実行して、レプリケーションの新しい設定を作成します。

cat >/etc/mysql/conf.d/replication.cnf <<EOF
[mysqld]
server-id = 101
log_bin = /var/log/mysql/mysql-bin.log
binlog-do-db = YOUR_DATABASE_ONE
binlog-do-db = YOUR_DATABASE_TWO
EOF

MySQLサーバーを再起動します。

/etc/init.d/mysql restart

database.sql次のコマンドを使用して、マスターノードからインポートを作成しました。

mysql -u MYSQL_USERNAME-pMYSQL-PASSWORD < database.sql

次に、レプリケーションを開始します。MySQLコンソールを開き、次のコマンドを実行します。

SLAVE STOP;
CHANGE MASTER TO MASTER_HOST='MASTER_SERVER_IP_ADDRESS', MASTER_USER='slave', MASTER_PASSWORD='YOUR_SLAVE_PASSWORD', MASTER_LOG_FILE='FILE_VALUE_FROM_MASTER', MASTER_LOG_POS=POSITION_VALUE_FROM_MASTER;
SLAVE START;

注:MASTER_LOG_FILE and の値MASTER_LOG_POSは、マスターノードのセットアップから書き留めた「ファイル」と「位置」です。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。