• 欢迎访问VPS岛网站,国外VPS,国内VPS,国外服务器,国内服务器,服务器主机,测评及优惠码,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群

Centos7搭建MySQL主从复制架构

mysql技术 wx5ed6455937203 80次浏览 已收录 0个评论

主从复制(也称 AB 复制)是将来自一个MySQL数据库服务器(主服务器)中的数据复制到一个或多个MySQL数据库服务器(从服务器)中

准备Centos7设备

配置ip和hostname,关闭防火墙和selinux
在/etc/hosts中添加主机名和IP地址映射

hostname ip
master 192.168.29.132
bak 192.168.29.138

配置MySQL

添加主从复制账号
MySQL5.7:

mysql>grant replication slave on *.* to 'repl'@'%' identified by 'your_password';
mysql>flush privileges;

MySQL8:

mysql>create user 'repl'@'%' identified by 'your_password';
mysql>grant replication slave on *.* to 'repl'@'%';
mysql>flush privileges;

修改master结点的配置文件/etc/my.cnf

[mysqld]
log_bin=binlog
expire_logs_days=7
max_binlog_size=200M

server-id=1
binlog-do-db=mydb
binlog-ignore-db=mysql

配置说明:
log_bin:设定日志名称
expire_logs_days:日志保存时间
max_binlog_size:日志最大容量
server-id:服务器识别号,master和bak的server-id不可重复
binlog-do-db:需要实现主从复制的数据库
binlog-ignore-db:不需要复制的库

重启master主机的MySQL服务,查看master主机信息

mysql> show master status\G;
             File: binlog.000146
         Position: 155
     Binlog_Do_DB: mydb
 Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 

备份master主机的数据并导入到bak主机中

在master结点执行备份命令,并传到bak结点中

mysqldump -u root -p -h localhost mydb > mydb.sql
scp mydb.sql root@bak:/tmp

在bak结点中创建数据库并进行数据导入

mysql -u root -p
mysql>create database mydb;
mysql>use mydb;
mysql>source /tmp/mydb.sql

配置bak主机的配置文件

[mysqld]
server-id=2
expire_logs_days=7
max_binlog_size=200M

启动bak结点的MySQL服务并进行主从配置

mysql>stop slave;
mysql>change master to
    ->master_host='192.168.29.132',
    ->master_user='repl',
    ->master_password='your_password',
    ->master_log_file='binlog.000146',
    ->master_log_pos=155;

参数含义:
master_host:主机IP地址
master_user:主从复制远程主机用户
master_password:主从复制远程主机用户的密码
master_log_file:实现复制的binlog日志文件
master_log_pos:binlog日志文件的偏移量

mysql>start slave;
mysql>show slave status\G;

查看bak主机中slave状态

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

主从复制配置成功

出现错误
在这里插入图片描述在这里插入图片描述

mysql>show master status\G;

更新bak中的slave状态

mysql>stop slave;
mysql>change master to
   ->master_log_file='binglog.000146',
   ->master_log_pos=155;
mysql>start slave;
mysql>show slave status\G;
#状态如下,问题解决
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

测试验证

在master结点的mydb库中进行创建表以及数据的增删改查操作,观察bak结点的MySQL库是否会同步实现操作


VPS岛 的文章和资源来自互联网,仅作为参考资料,如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。丨 转载请注明Centos7搭建MySQL主从复制架构
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址