ホームページ > システムチュートリアル > Linux > MariaDB でマスター/スレーブ レプリケーションを構成する方法

MariaDB でマスター/スレーブ レプリケーションを構成する方法

WBOY
リリース: 2024-05-01 13:49:01
転載
527 人が閲覧しました

如何在 MariaDB 中配置主从复制

前のチュートリアルでは、MariaDB[1]をインストールして構成する方法を学び、MariaDB[2]を管理するための基本的なコマンドも学びました。次に、MariaDB サーバー上でマスター/スレーブ レプリケーションを構成する方法を学びましょう。

レプリケーションは、データベースの複数のコピーを作成するために使用されます。これらのコピーは、メイン データベース サーバーのパフォーマンスに影響を与える可能性のある非常に重いクエリなど、他のデータベースでクエリを実行するために使用したり、データの冗長性のために使用したりできます。上記の両方の目的。このプロセスは自動化できます。つまり、マスター サーバーからスレーブ サーバーへのレプリケーション プロセスが自動的に実行されます。プライマリ サーバーへの書き込みに影響を与えずにバックアップを実行します。

それでは、マスター/スレーブ レプリケーションを構成しましょう。これには、MariaDB がインストールされた 2 台のマシンが必要です。彼らの IP アドレスは次のとおりです:

  • マスターサーバー - 192.168.1.120 ホスト名 - master.ltechlab.com
  • スレーブサーバー - 192.168.1.130 ホスト名 - smile.ltechlab.com

これらのマシンに MariaDB をインストールしたら、チュートリアルを続けましょう。 MariaDB のインストールと構成に関するチュートリアルが必要な場合は、このチュートリアル[3]をチェックしてください。

ステップ 1 - マスターサーバーの構成

ここで、MariaDB に important という名前のデータベースを入力します。これはスレーブ サーバーにコピーされます。プロセスを開始するには、MariaDB の構成ファイルである /etc/my.cnf というファイルを編集します。

リーリー

このファイルの [mysqld] セクションを見つけて、次のように入力します。

リーリー

このファイルを保存して終了します。完了後、MariaDB サービスを再起動する必要があります。

リーリー

次に、メインサーバーの Mariadb インスタンスにログインします。

リーリー

マスター/スレーブレプリケーション用に slaveuser という名前の新しいユーザーを作成し、次のコマンドを実行して必要な権限を割り当てます。 リーリー

注: マスター/スレーブレプリケーションを構成するには、MASTER_LOG_FILEMASTER_LOG_POSの値が必要です。これは、show master statusで取得できるため、それらの値を必ず書き留める必要があります。

これらのコマンドを実行した後、「

exit」と入力してこのセッションを終了します。

ステップ 2 - データベースのバックアップを作成し、スレーブ サーバーに移動します
ここで、データベースのバックアップを作成する必要があります

重要 バックアップには mysqldump コマンドを使用できます。 リーリー

バックアップが完了したら、MariaDB データベースに再度ログインし、テーブルのロックを解除する必要があります。

リーリー

その後、このセッションを終了します。次に、作成したばかりのバックアップを、IP アドレスが 192.168.1.130 であるスレーブ サーバーに移動します。

マスターサーバーの設定が完了しました。次に、スレーブサーバーの設定を開始します。

ステップ 3: スレーブサーバーを構成する

我们再次去编辑(从服务器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 节,然后输入如下内容:

[mysqld]
server-id = 2
replicate-do-db=important
[ …]
ログイン後にコピー

现在,我们恢复我们主数据库的备份到从服务器的 MariaDB 上,运行如下命令:

$ mysql -u root -p < /data/ important_backup.sql
ログイン後にコピー

当这个恢复过程结束之后,我们将通过登入到从服务器上的 MariaDB,为数据库 important 上的用户 'slaveuser' 授权。

$ mysql -u root -p
ログイン後にコピー
ログイン後にコピー
GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ログイン後にコピー

接下来,为了这个变化生效,重启 MariaDB。

$ systemctl restart mariadb
ログイン後にコピー
第 4 步:启动复制

记住,我们需要 MASTER_LOG_FILEMASTER_LOG_POS 变量的值,它可以通过在主服务器上运行 SHOW MASTER STATUS 获得。现在登入到从服务器上的 MariaDB,然后通过运行下列命令,告诉我们的从服务器它应该去哪里找主服务器。

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST= '192.168.1.110′, MASTER_USER='slaveuser', MASTER_PASSWORD='iamslave', MASTER_LOG_FILE='mariadb-bin.000001′, MASTER_LOG_POS=460;
SLAVE START;
SHOW SLAVE STATUS\G;
ログイン後にコピー

注意: 请根据你的机器的具体情况来改变主服务器的配置。

第 5 步:测试复制

我们将在我们的主服务器上创建一个新表来测试主从复制是否正常工作。因此,登入到主服务器上的 MariaDB。

$ mysql -u root -p
ログイン後にコピー
ログイン後にコピー

选择数据库为 important

use important;
ログイン後にコピー

在这个数据库上创建一个名为 test 的表:

create table test (c int);
ログイン後にコピー

然后在这个表中插入一些数据:

insert into test (c) value (1);
ログイン後にコピー

检索刚才插入的值是否存在:

select * from test;
ログイン後にコピー

你将会看到刚才你插入的值已经在这个新建的表中了。

现在,我们登入到从服务器的数据库中,查看主从复制是否正常工作。

$ mysql -u root -p
$ use important;
$ select * from test;
ログイン後にコピー

你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。

我们的教程结束了,请在下面的评论框中留下你的查询/问题。


以上がMariaDB でマスター/スレーブ レプリケーションを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:linuxprobe.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート