Mysql8设置主从复制

1.主从复制,在本质上就是通过与从数据库复制与主数据库的binlog日志文件,通过重做实现的同步; 但是一定要注意尽量保证主从服务器上安装了相同的版本的数据库,在主服务器上设置一个复制使用的账号,并授予replication slave权限。我们可以根据ip创建账号为slave

创建账号:CREATE USER 'slave'@'192.168.44.%' IDENTIFIED WITH mysql_native_password BY 'slave';

赋予权限:GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.44.%';

2.主服务器设置mysql配置文件 

vi /etc/my.cnf

[mysqld]
log-bin=mysql-bin
server-id=1

3.从服务器配置

注:如果是虚拟主机克隆需要改一下ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改ip:GATEWAY=192.168.44.12
重启网络:systemctl restart network
需要改一下mysql的uuid:find / -name auto.cnf   
开始配置从节点:
server-id =2
relay_log = /usr/local/mysql/data/mysql-relay-bin
relay_log-index = /usr/local/mysql/data/mysql-relay-bin.index
log_slave_updates =1
read_only =1
flush privileges;
先查看主服务器的节点:show master status;
关闭主节点服务器防火墙:systemctl stop firewalld.service;
从服务器指定主节点ip:
change master to master_host='192.168.44.11',master_port=3306,master_user='slave', master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=156;
4.启动节点并且查看是否配置成功:
start slave;
show slave status \G;
5.如果看到以下两个配置均为yes,则配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
常见错误如下:
注:报retry-time可能是防火墙没关
注:Got fatal error 1236 from master when reading data from binary log........

刷新日志:flush logs;

因为刷新日志file的位置会+1

slave执行: CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000015',MASTER_LOG_POS=156;

mysql> slave start;

mysql> show slave status\G;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 8 实现主从复制的过程包括以下几个步骤: 1. 配置主服务器: 首先,需要在主服务器上打开 binlog,并配置一个唯一的 server-id。这样主服务器才能将更新的日志发送给从服务器。在 MySQL 配置文件中,需要添加如下配置: ``` [mysqld] log-bin = mysql-bin server-id = 1 ``` 其中,`log-bin` 指定了 binlog 文件的名称,`server-id` 是主服务器的唯一标识。 2. 创建复制账户: 在主服务器上创建一个专门用于复制的账户,并赋予账户 REPLICATION SLAVE 权限。例如: ``` CREATE USER 'repl'@'slave_ip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slave_ip'; ``` 其中,`slave_ip` 是从服务器的 IP 地址,`password` 是账户的密码。 3. 备份数据: 在主服务器上对数据库进行备份,并记录当前的 binlog 文件名和位置。这样在从服务器配置时可以指定从哪个位置开始复制。 4. 配置从服务器: 在从服务器上,需要配置连接主服务器的信息和复制参数。通过修改 MySQL 配置文件,添加如下配置: ``` [mysqld] server-id = 2 ``` 然后在命令行或者 MySQL Workbench 中执行如下命令,连接主服务器并开始复制: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=123; START SLAVE; ``` 其中,`master_ip` 是主服务器的 IP 地址,`mysql-bin.000001` 和 `123` 是在步骤 3 中备份数据时记录的 binlog 文件名和位置。 通过以上步骤,MySQL 8 主从复制就可以成功实现了。从服务器会不断从主服务器同步数据,并保持数据的一致性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值