当前位置:   article > 正文

mysql5.7主从配置

mysql5.7主从配置

个人理解,mysql主从配置主要是为了读写分离,只在主库写数据,从库向用户提供读数据的服务。

准备:

两台装好mysql5.7的服务器(本文为虚拟机测试,192.168.xx.131和192.168.xx.132)

其中192.168.xx.131设为主库,192.168.xx.132为从库。

一、检查防火墙是否关闭,或者是否开放3306端口

       systemctl status firewalld.service

       没关闭就把防火墙关闭

      systemctl stop firewalld.service

 二、修改mysql配置文件my.cnf

        先修改 主库 的配置文件

      vim /etc/my.cnf

 将下列配置项粘贴到my.cnf 文件中

symbolic-links=0
server_id = 1  //主库从库不可相同,此id为唯一
log-bin = mysql-bin //开启binlog
binlog-format = ROW
auto-increment-increment=2
auto-increment-offset=1 
#binlog-do-db=test //已注释,代表只同步的数据库
binlog-ignore-db=mysql  //不同步的数据库,若多个数据库不同步,可多写几行
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

 保存后配置 从库 的my.cnf,如下

symbolic-links=0
server_id = 2  //与主库不能一致
log-bin = mysql-bin
binlog-format = ROW
auto-increment-increment=2
auto-increment-offset=2
binlog-do-db=test //同步测试库,可修改成你想同步的数据库

 三、修改好后,创建测试用到的测试库test,主库和从库都要建

create database test;

 建一张测试表

  CREATE TABLE `dept` (
       `deptno` int(2) NOT NULL,
       `dname` varchar(14) DEFAULT NULL,
       `loc` varchar(13) DEFAULT NULL,
        PRIMARY KEY (`deptno`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 在“主库”所在的服务器上创建一个可以在“从库”服务器上登录“主库”的用户

 CREATE USER 'slave'@'192.168.xx.132' IDENTIFIED BY '123456';
 GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.xx.132';

可以查看一下用户表是否创建成功

 select user,host from mysql.user;

 

 创建成功后记得给该用户赋权,远程登录,并刷新权限

GRANT ALL PRIVILEGES ON *.* TO 'slave'@'192.168.xx.132' WITH GRANT OPTION;

flush privileges;

 退出mysql,重启mysql服务,让它们读取修改后my.cnf。

重启后,可以登录mysql查看各自的service_id是否与配置文件一致

SHOW VARIABLES LIKE 'server_id'

主库为1 

 

从库为2 

 

 确认无误后准备同步配置

四、同步配置

在“主库”服务器中查看binlog位置

SHOW MASTER STATUS; 

 

在“从库”的服务器上输入以下命令,请保证以下命令为一行,没有换行符

MASTER_HOST为主库的IP

MASTER_HOST为刚刚创建的用户

MASTER_HOST为刚刚创建的用户密码

MASTER_LOG_FILE与上图的File对应

MASTER_LOG_POS与上图的Position对应

 CHANGE MASTER TO

MASTER_HOST='192.168.xx.131',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=1085 \g;

 

在“从库”开启主从

start slave;

 查看主从状态

SHOW SLAVE STATUS \G;

 

注意,若Slave_IO_Running为connecting,请检查自己的防火墙、用户登录权限以及配置文件service_id是否重复

可以在“从库”的服务器上测试是否能登陆主库

mysql -uslave -p123456 -htest1

五、实例测试

 先在主库中插入一条数据

 insert into dept values(4,"d","dd");

 查看表

再到“从库”中查看dept表

 

完成 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/1008782
推荐阅读
相关标签
  

闽ICP备14008679号