一文学会CentOS8下Mysql8.0.26主从同步配置丨【绽放吧!数据库】
一、环境准备
准备两台CentOS8服务器,也可以使用虚拟机(博主这里使用的是虚拟机),在两台服务器上根据博主的CentOS8中安装MySql8.0.26丨【绽放吧!数据库】这篇教程装好Mysql8.0.26,这里两台数据库服务器地址如下:
主库:172.16.2.103
从库:172.16.2.104
二、配置主从同步
1、主库配置(172.16.2.103)
(1)停止主库的mysql服务
[root@localhost ~]# service mysqld stop
(2)修改/etc/my.cnf
配置
[root@localhost ~]# vim /etc/my.cnf
在[mysqld]
下面添加如下配置:
[mysqld]
# 设置服务id,主从不能一致
server-id=1
# 开启binlog
log-bin=mysql-bin
# 下面参数可选
# 设置需要同步的数据库,如果只针对某个数据库进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
binlog-do-db=customer_db1
binlog-do-db=customer_db2
# 屏蔽系统库同步,如果需要对某个数据库不进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
(3)重新启动mysql
[root@localhost ~]# service mysqld start
(4)登录数据库
[root@localhost ~]# mysql -u root -p
(5)创建主备复制专用账号(绑定从库的IP:172.16.2.104)
mysql> CREATE USER 'db_sync'@'172.16.2.104' IDENTIFIED WITH mysql_native_password BY 'db_sync';
(6)给主备复制专用账号授权
mysql> GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'172.16.2.104';
(7)刷新权限
mysql> FLUSH PRIVILEGES;
(8)确认位点记录下文件名以及位点
mysql> show master status;
2、从库配置(172.16.2.104)
(1)停止从库的mysql服务
[root@localhost ~]# service mysqld stop
(2)修改/etc/my.cnf
配置
[root@localhost ~]# vim /etc/my.cnf
在[mysqld]
下面添加如下配置:
[mysqld]
# 设置服务id,主从不能一致
server-id=2
# 开启日志
log-bin=mysql‐bin
# 下面参数可选
#设置需要同步的数据库,如果只针对某个数据库进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
replicate_wild_do_table=customer_db1.%
replicate_wild_do_table=customer_db2.%
#屏蔽系统库同步,如果需要对某个数据库不进行同步则追加以下配置,配置对应的数据库名称,多个的话配置多行
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
(3)重新启动mysql
[root@localhost ~]# service mysqld start
(4)登录数据库
[root@localhost ~]# mysql -u root -p
(5)停止同步
mysql> stop slave;
(6)修改从库指向到主库,使用主库配置(8)中记录的文件名以及位点
mysql> CHANGE MASTER TO master_host='172.16.2.103',master_user='db_sync',master_password='db_sync',master_log_file='mysql-bin.000004',master_log_pos=2166;
(7)启动同步
mysql> start slave;
(8)查看同步状态
mysql> show slave status\G
说明:从库状态Slave_IO_Runing和Slave_SQL_Runing都为Yes说明同步成功,如果不是这两个值,请检查 error_log,然后排查相关异常。
==说明:如果只是配置单向主从复制则到此处已经配置完成,如果需要配置双向的互为主从则继续第三步操作。==
三、配置互为主从
此处操作均在第二步基础上进行,将172.16.2.104
视为主库,将172.16.2.103
视为从库进行配置。
1、主库配置(172.16.2.104)
(1)登录数据库
[root@localhost ~]# mysql -u root -p
(2)创建主备复制专用账号(绑定从库的IP:172.16.2.103)
mysql> CREATE USER 'db_sync'@'172.16.2.103' IDENTIFIED WITH mysql_native_password BY 'db_sync';
(3)给主备复制专用账号授权
mysql> GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'172.16.2.103';
(4)刷新权限
mysql> FLUSH PRIVILEGES;
(5)确认位点记录下文件名以及位点
mysql> show master status;
2、从库配置(172.16.2.103)
(1)登录数据库
[root@localhost ~]# mysql -u root -p
(2)停止同步
mysql> stop slave;
(3)修改从库指向到主库,使用主库配置(5)中记录的文件名以及位点
mysql> CHANGE MASTER TO master_host='172.16.2.104',master_user='db_sync',master_password='db_sync',master_log_file='mysql-bin.000001',master_log_pos=1303;
(4)启动同步
mysql> start slave;
(5)查看同步状态
mysql> show slave status\G
说明:从库状态Slave_IO_Runing和Slave_SQL_Runing都为Yes说明同步成功,如果不是这两个值,请检查 error_log,然后排查相关异常。
==至此mysql数据库双向互为主从配置完成。==
四、删除主从复制配置
1、清除从库配置
(1)从库停止同步
mysql> stop slave;
(2)重置同步状态
mysql> reset slave all;
(3)查看同步状态
mysql> show slave status\G
清除成功则显示结果如下:
2、清除主库配置
如果主库为主从复制设置了专用用户,则在此处删除相关用户,如果没配置,则可不进行操作。
(1)查看用户列表
mysql> select user, host from user;
红色框内用户即为博主配置的主从同步专用用户。
(2)删除主从复制专用用户
mysql> drop user 'db_sync'@'172.16.2.103';
(3)查看删除主从复制专用用户后的用户列表
mysql> select user, host from user;
==至此主从配置删除完成==
【绽放吧!数据库】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/285617
- 点赞
- 收藏
- 关注作者
评论(0)