MySQL 8.0主从同步数据库配置
2019-08-13
MySQL 8.0主从同步数据库配置
一、主节点(Master)的配置
- 开启二进制日志和配置server-id
vi /etc/my.cnf
在my.cnf文件中加入如下配置内容
[mysqld]
log-bin=mysql-bin
server-id=1
2.创建用于主从同步的用户
CREATE USER 'repl'@'192.168.199.198' IDENTIFIED WITH mysql_native_password BY 'Test@123';
授予同步权限
GRANT REPLICATION SLAVE ON . TO 'repl'@'192.168.199.198';
刷新授权表信息
flush privileges;
- 获取主节点当前binary log文件名和位置(position)
show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000003 | 757925 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
二、从节点(Slave)的配置
1.修改server-id(主从节点的server-id不能一样)
vi /etc/my.cnf
在my.cnf文件中加入如下配置内容
[mysqld]
server-id=2
2.设置主节点参数
mysql> change master to master_host='192.168.199.198',
master_port=3306,
master_user='repl',
master_password='Test@123',
master_log_file='binlog.000003',
master_log_pos=757925;
3.开启主从同步
mysql> start slave;
4.查看主从同步状态
mysql> show slave status\G;
至此,主从同步配置完成,从节点会自动同步主节点的动态内容(包括自动建库、自动建表)。
ps:从节点只会同步生效这一时刻后的内容,之前的主节点数据需要在配置同步之前备份到从库中。
主从数据库若没有保持一致的话,后续的同步过程中从库会发生异常的。
从库发生异常处理后,需要更新从库中主库的master_log_pos的值。
参考: https://blog.csdn.net/zyhlwzy/article/details/80569422
其它相关命令
查看mysql服务状态
systemctl status mysqld.service
systemctl restart mysqld
用户root登录开启远程访问权限
查看
select host,user from mysql.user;
修改host为% :
update user set host='%' where mysql.user='root';
flush privileges;
查看用户权限
show grants for 你的用户
show grants for 'test'@'%';
查看server_id
show variables like 'server_id';
set global server_id=1;
主库上查看有哪些从库节点
show slave hosts;
从节点状态
show slave status\G
start slave;
stop slave;