MySQL5.7主从同步配置(一台master,两台slave)

1. 下载MySQL(5.7.42)
rpm -ivh   http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

在这里插入图片描述

2.安装
yum install mysql-server
2.1 安装过程中如果报错如下,按下边方法处理。否则略过即可

在这里插入图片描述

2.2 解决方案:执行以下命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
2.3 再次执行安装命令
yum install mysql-server
3. 设置/etc/my.cnf 文件内容
3.1 设置master数据库 my.cnf文件

vim /etc/my.cnf

复制下边内容

datadir=/data/mysql/data     # 数据存放路径
port=3306
socket=/var/lib/mysql/mysql.sock
server_id=1                 # server_id 主从三台机器必须不一致
log-bin=/data/mysql/data/mysql-bin   # binlog日志存放路径
expire_logs_days = 7  
binlog-ignore-db=mysql # 忽略mysql这个数据库,不进行同步,也可以采用binlog-do-db=mysql指定同步mysql库
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0

log-error=/data/mysql/log/mysqlerror.log     # 日志存储位置
pid-file=/var/run/mysqld/mysqld.pid      
3.2 创建3.1中设置的文件路径
mkdir mysql/data/mysql
mkdir /mysql/data/log
touch /data/mysql/log/mysqlerror.log
3.3 赋予mysql访问权限
chown mysql:mysql  /data/mysql/log/mysqlerror.log
chown mysql:mysql  /data/mysql/data/
3.4 设置slave节点的 /etc/my.cnf

vim /etc/my.cnf

datadir=/data/mysql/data    # 日志文件位置
port=3306       
socket=/var/lib/mysql/mysql.sock
server_id=2               # slave节点id,另一个节点可设置为3,必须唯一
expire_logs_days = 7
replicate-ignore-db=mysql    # 忽略复制mysql数据库,也可以通过replicate-do-db=test指定复制某test数据库
log-error=/data/mysql/log/mysqlerror.log  # 日志文件位置
pid-file=/var/run/mysqld/mysqld.pid
3.5 创建3.4中文件路径并服务mysql访问权限
mkdir mysql/data/mysql
mkdir /mysql/data/log
touch /data/mysql/log/mysqlerror.log
chown mysql:mysql  /data/mysql/log/mysqlerror.log
chown mysql:mysql  /data/mysql/data/
4.启动MySQL主从节点
4.1 启动mysql命令
systemctl start mysqld
systemctl stop mysqld # 停止MySQL服务命令,此处不需要执行
4.2 查看mysql启动状态
 systemctl status mysqld
4.3 查看mysql默认密码
vim /var/log/mysqld.log
/password  # 在vim编辑器中搜索
5. 进入MySQL客户端
mysql -uroot -p
# 回车后输入前边查询的密码
5.1 进入MySQL客户端连接后,修改密码(在主从节点都要完成此操作)
# 设置密码策略为最低级别,策略共有三个级别,复杂度依次增加,只有LOW级别,支持简单密码,如12345678这样。
set global validate_password_policy=LOW; 

# 修改密码
alter user 'root'@'localhost' identified by '12345678';

# 刷新
FLUSH PRIVILEGES;

# 赋予远程任何机器连接权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION;
5.2 在主节点MySQL连接客户端添加数据同步从节点账户
# 支持任意从节点连接
grant replication slave on *.* to 'root'@'%' identified by '12345678';
5.3 退出MySQL客户端连接,重启mysql
systemctl restart mysql
5.4 重启后,重新进入MySQL客户端连接
show master status;

记录 File 名称和 Position 数字,等会从连接主节点时需要用到。
在这里插入图片描述

5.5 进入从节点MySQL连接客户端

注意:如果主库数据与从库数据相差较大,尽量先将主库数据导出后,手动导入到从库,然后在进行主从同步构建,否则可能因数据差距较大出现同步异常问题。

  • 修改从库同步设置
# master_log_file='mysql-bin.000002' 和master_log_pos=2740 对应上图(5.4)
change master to master_host='主库ip(192.168.1.1)',master_user='root',master_password='12345678',master_log_file='mysql-bin.000002',master_log_pos=2740;
  • 开启从库slave
start slave;
  • 查看从库状态
show slave status\G;

如下图所示均显示 Yes,则表示主从同步已成功建立。另一个从节点的操作与上述一致。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Janson666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值