mysql(二):linux下mysql主从搭建

        上一篇文章中搭建完成了mysql的单机版,实际上在真正生产环境中根据实际需求会搭建不同的环境。Mysql的主从搭建适合于查询较多,写入较少的情况,而且可以一主多从,在项目中可以用代码控制实现不同数据源的访问,例如,CUD操作全部走主库,查询操作全部走剩下的从库。

1、环境准备

      准备另一台虚拟机(132)

    2、安装mysql

     按照上一篇文章中的单机形式先安装在132机器上

     此时131和132数据库都已经安装完成

        注意安装时my.cnf文件中不需要开启log-bin,因为此台mysql是从数据库,只需要主数据库开启log-bin就可以了,这样从数据库一直通过主数据库的log-bin去同步数据。

    132下面的my.cnf配置。

        3、主从同步(主为131从为132)

        首先在主库上给从库复制的权限,且查看主库当前的状态,

        GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.109.132' identified by '123456';

        show master status;

        此时到从库执行以下命令

        change master to master_host='192.168.109.131', master_user='root', master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=451;

        注意里面的log-bin文件根据上图一致,偏移量也需要一致,这样从库的状态就会和主库保持一致

执行命令效果展示

        然后从库同步开启


        此时查看从库的状态同步是否开启成功

        4、测试是否正确

        客户端连接到131和132两台数据库,在主数据库上写入数据,从数据库会立即同步

        此时在从数据库中写入,则主库不会改变


        当然,如果要控制从数据库只能读,写都不能写,需要新建一个普通用户,然后在从数据库命令行中进行

        set global read_only=1;

        这样就普通用户登录进行就只能读从数据库了。

        因为从数据库中root用户需要同步主数据库中数据,所以不能修改root用户只读,否则同步不会成功。

你可能感兴趣的:(mysql(二):linux下mysql主从搭建)