centos7系统如何配置mysql的主从复制

2023-05-15,,

下文我给大家简单讲讲关于centos7系统如何配置mysql的主从复制,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完centos7系统如何配置mysql的主从复制对大家多少有点帮助吧。

主 192.168.2.10

从192.168.2.11

先配置主mysql

vi /etc/my.cnf

找到 [mysqld] 并在其后添加如下配置:
唯一标识此 MySQL 云服务器,默认值为 1,一般采用所属 IP 的末端值
server-id=1

二进制日志文件名字,MySQL 主云服务器必须启用此配置
log-bin=master-bin-log

 MySQL 主云服务器中参与主从复制的数据库名;如果有多个数据库,则此参数可以有多个,每行一个,分部对应不同的数据库
binlog-do-db=db_master_backup
MySQL 主云服务器中二进制日志文件的索引名
og-bin-index=master-bin-log.index

创建数据库 db_master_backup

create database db_master_backup;

创建用户 backup,并设置密码 backup_123456:
create user 'backup'@'%' identified by 'backup_123456';

为用户backup 赋权对 db_master_backup 数据库的所有权限:
 grant all on db_master_backup.* to 'backup'@'%';

为用户backup 赋本地访问的权限:
grant all privileges on db_master_backup.* to 'backup'@'localhost' identified by 'backup_123456';

授权从云服务器可以通过 backup 用户访问主服务器:
grant replication slave on *.* to 'backup'@'%' identified by 'backup_123456' with grant option;

配置从数据库

vi /etc/my.cnf

# 唯一标识此 MySQL 云服务器,默认值为 1,一般采用所属 IP 的末端值
server-id=2
# MySQL 从云服务器的日志索引文件名

relay-log-index=slave-relay-log.index
# MySQL 从云服务器的日志文件名

relay-log=slave-relay-log

创建数据库 db_master_backup

create database db_master_backup;

重启两个mysql服务

查看主云服务器的状态:
show master status;

在从服务上执行如下配置:

change master to master_host='192.168.2.10',        // 主云服务器IP
master_port=3306,
master_user='user_master',
master_password='Password_Master_123456',
master_log_file='master-bin-log.000001',    // 主云服务器 master_log_file 的值
master_log_pos=364;    // 主云服务器 master_log_pos 的值

mysql> stop slave;

mysql> start slave;

执行 show slave status \G

如果有Error reading packet from server for channel '': Could not find first log file name in binary log index file 报错

解决步骤:

重启master库:service mysqld restart

mysql> show master status;

在从库上执行

mysql> stop slave;

mysql> change master to Master_Log_File='master-bin-log.000002',Master_Log_Pos=154;

mysql> slave start;

mysql> show slave status\G

在 MySQL master云服务器的 db_master_backup 库中为用户名 t_user 添加数据:
mysql> insert into t_user(id, name) values(1, 'idea1');
mysql> select * from t_user;

在主云服务器上建立脚本向t_user中插入数据

#!/bin/bash
i=1;
MAX_INSERT_ROW_COUNT=$1;
while [ $i -lt 100 ]
do
    mysql -uroot -p123456 db_master_backup -e "insert into t_user () values ('$i',$i);"
    echo "INSERT HELLO $i @@ $d"
    i=$(($i+1))
    sleep 0.05
done
exit 0

在从数据库中查看数据是否同步

mysql> select * from t_user;

大家觉得centos7系统如何配置mysql的主从复制这篇文章怎么样,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。 

《centos7系统如何配置mysql的主从复制.doc》

下载本文的Word格式文档,以方便收藏与打印。