循序渐进学习如何在MariaDB中配置主从复制?

在我们前面的教程中,我们已经学习了 如何安装和配置 MariaDB,也学习了 管理 MariaDB 的一些基础命令。现在我们来学习,如何在 MariaDB 服务器上配置一个主从复制。

新邱网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

复制是用于为我们的数据库创建多个副本,这些副本可以在其它数据库上用于运行查询,像一些非常繁重的查询可能会影响主数据库服务器的性能,或者我们可以使用它来做数据冗余,或者兼具以上两个目的。我们可以将这个过程自动化,即主服务器到从服务器的复制过程自动进行。执行备份而不影响在主服务器上的写操作。

因此,我们现在去配置我们的主-从复制,它需要两台安装了 MariaDB 的机器。它们的 IP 地址如下:

  • 主服务器 - 192.168.1.120 主机名 - master.ltechlab.com
  • 从服务器 - 192.168.1.130 主机名 - slave.ltechlab.com

MariaDB 安装到这些机器上之后,我们继续进行本教程。如果你需要安装和配置 MariaDB 的教程,请查看这个教程

第 1 步 - 主服务器配置

我们现在进入到 MariaDB 中的一个命名为 important 的数据库,它将被复制到我们的从服务器。为开始这个过程,我们编辑名为 /etc/my.cnf 的文件,它是 MariaDB 的配置文件。

 
 
 
  1. $ vi /etc/my.cnf

在这个文件中找到 [mysqld] 节,然后输入如下内容:

 
 
 
  1. [mysqld]
  2. log-bin
  3. server_id=1
  4. replicate-do-db=important
  5. bind-address=192.168.1.120

保存并退出这个文件。完成之后,需要重启 MariaDB 服务。

 
 
 
  1. $ systemctl restart mariadb

接下来,我们登入我们的主服务器上的 Mariadb 实例。

 
 
 
  1. $ mysql -u root -p

在它上面创建一个命名为 slaveuser 的为主从复制使用的新用户,然后运行如下的命令为它分配所需要的权限:

 
 
 
  1. STOP SLAVE;
  2. GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'iamslave';
  3. FLUSH PRIVILEGES;
  4. FLUSH TABLES WITH READ LOCK;
  5. SHOW MASTER STATUS;

注意: 我们配置主从复制需要 MASTER_LOG_FILEMASTER_LOG_POS 的值,它可以通过 show master status 来获得,因此,你一定要确保你记下了它们的值。

这些命令运行完成之后,输入 exit 退出这个会话。

第 2 步 - 创建一个数据库备份,并将它移动到从服务器上

现在,我们需要去为我们的数据库 important 创建一个备份,可以使用 mysqldump 命令去备份。

 
 
 
  1. $ mysqldump -u root -p important > important_backup.sql

备份完成后,我们需要重新登录到 MariaDB 数据库,并解锁我们的表。

 
 
 
  1. $ mysql -u root -p
  2. $ UNLOCK TABLES;

然后退出这个会话。现在,我们移动我们刚才的备份到从服务器上,它的 IP 地址是:192.168.1.130。

在主服务器上的配置已经完成了,现在,我们开始配置从服务器。

第 3 步:配置从服务器

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

 
 
 
  1. [mysqld]
  2. server-id = 2
  3. replicate-do-db=important
  4. [ …]

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

 
 
 
  1. $ mysql -u root -p < /data/ important_backup.sql

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

 
 
 
  1. $ mysql -u root -p
 
 
 
  1. GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION;
  2. FLUSH PRIVILEGES;

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

 
 
 
  1. $ systemctl restart mariadb

 

第 4 步:启动复制

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

 
 
 
  1. STOP SLAVE;
  2. 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;
  3. SLAVE START;
  4. SHOW SLAVE STATUS\G;

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

第 5 步:测试复制

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

 
 
 
  1. $ mysql -u root -p

选择数据库为 important

 
 
 
  1. use important;

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

 
 
 
  1. create table test (c int);

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

 
 
 
  1. insert into test (c) value (1);

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

 
 
 
  1. select * from test;

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

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

 
 
 
  1. $ mysql -u root -p
  2. $ use important;
  3. $ select * from test;

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

网站栏目:循序渐进学习如何在MariaDB中配置主从复制?
转载源于:http://www.stwzsj.com/qtweb/news4/7054.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联