目 录CONTENT

文章目录

MySQL 主从同步部署

vanegoo
2024-04-29 / 0 评论 / 0 点赞 / 10 阅读 / 4820 字 / 正在检测是否收录...

主节点配置

vim /etc/my.cnf
[mysqld]
server-id = 2
 
log_bin = master-bin
log-slave-updates = true
 
systemctl restart mysqld
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

从服务器1 、2的配置:是一样的 server-id不要重复就行

vim /etc/my.cnf
server-id = 3
#server-id = 3  mysql3则为4,三台服务器 server-id 不能一样
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index
 
systemctl restart mysqld
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

在主服务器上创建并授权从服务器使用的mysql同步数据使用的mysql账户

# 创建从服务器同步用的mysql用户
create user 'rep'@'%' identified by '123456';
ALTER USER 'rep'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 授权创建的用户权限
grant replication slave,replication client on *.* to 'rep'@'%'; 

从服务器测试能否使用rep账户登录到主服务器

在主服务器查看二进制文件和偏移量

show master status;

这两个值记下来,一会要用

从服务器1、2 同步执行操作:

change master to master_host='1.92.122.182',master_port=13306,master_user='rep',master_password='123456',master_log_file='localhost-bin.000001',master_log_pos=699;

start slave;

show slave status\G;

如果复制状态显示错误,并且你确定需要重置复制,可以执行以下步骤:

  • 停止复制:STOP SLAVE;

  • 重置复制状态:RESET SLAVE;(注意:这将删除所有复制相关的元数据,意味着你需要重新设置主从复制关系)

  • 重新配置复制:使用CHANGE MASTER TO命令设置主服务器的连接参数。

  • 启动复制:START SLAVE;

如果主服务器的MySQL修改了了端口(即服务端口不是默认的3306),在CHANGE MASTER 时 加一个 master_port=,注意该值需要为整数而非字符串,

从服务器1、2同步执行设置为只读模式:

set global read_only=1;

测试

在主服务器创建一个数据库test

create database test;

然后再从服务器查看

show databases;

在从服务器能看到test库,到这一步主从同步搭建完成。

0

评论区