linux(CentOS7.x)搭建mysql8.x主从

1. 环境说明

服务器:linux(CentOS7.5),内存4G,

主节点ip:192.168.52.150

从节点ip:192.168.52.151

MySQL版本: 8.0.21

2. 安装mysql

 MySQL的安装在我之前的博客里已经详细说明,这里不在赘述,下面是链接

CentOS7.x的mysql8.0.21离线安装_mysql8.0离线安装_langmeng110的博客-CSDN博客

主要将主和从节点需要注意的地方做说明 

3. MySQL主节点需要的操作

 1.编辑/etc/my.cnf

        1) 设置server-id,这个值不能和从节点一样

        例如: server-id=1

        2) 设置同步信息,不设置时,默认同步所有库的所有表规则很多,这里只罗列几个常规的

my.cnf配置同步数据逻辑
binlog-do-db 需要同步的库名
binlog-ignore-db 不需要同步的库名
replication-do-table 需要同步的表名,格式:库名.表名(test.t_table)
replication-ignore-table 不需要同步的表名,格式:库名.表名(test.t_table)

     3) 为从节点同步数据创建专属账号(也可使用现有账号) 例如账号:replica

        create user 'replica'@'%';

        grant replication slave on *.* to 'replica'@'%' identified by 'zheshimima';

        flush privileges;

4. MySQL从节点需要的操作

1. 编辑 /etc/my.cnf

        1) 设置server-id,这个值不能和主节点一样

          例如: server-id=2

        2) 同步之前主库的数据(如果不需要也可以略过)

#在/usr/local/mysql/bin/目录下执行
./mysqldump --single-transaction --all-databases --master-data=1 --host=192.168.52.150 --user=replica --password=replica --apply-slave-statements

        3) 关闭slave

        stop slave;

        3.1) 此时主数据库可能依旧在活动中,有可能Position会发生偏移,所以最好执行以下命令

        flush tables with read lock;  阻止库的写操作

        3.2) 查询主节点bin-log日志文件名称及位置

        show master status;

linux(CentOS7.x)搭建mysql8.x主从_第1张图片

        4) 设置同步信息

change master to master_host='192.168.52.150',master_port=3306,master_user='replica',master_password='replica',master_log_file='bin-log.000004',master_log_pos=431;

        5)  开启slave并解锁

        start slave;

        unlock tables;释放锁

        6) 查看slave状态

        show slave status;

linux(CentOS7.x)搭建mysql8.x主从_第2张图片

        如果Slave_IO_Running和Slave_SQL_Running都为YES则说明成功了 

         如果其中有NO的,则需要看Last_IO_Error和Last_SQL_Error中具体问题

5. 测试

 在主库新增一条记录,在从库查询,即可发现也有这条记录了

如此,算是大功告成了

你可能感兴趣的:(mysql,数据库,linux)