欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Linux Mysql主从配置】整理主从配置遇到的坑!

程序员文章站 2022-07-02 09:43:00
说明:-u :用户名 -p :密码 --lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改 1、设置mysql配置文件[ 我使用的宝塔,所以直接在软件商店的mysql里边直接进行配置设置 ] 主服务器:【mysqld】:log-bin=mysql-bin log_slave ......

说明:-u :用户名  -p :密码  --lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改

1、设置mysql配置文件[ 我使用的宝塔,所以直接在软件商店的mysql里边直接进行配置设置 ]

主服务器:【mysqld】:log-bin=mysql-bin  log_slave_updates=1  skip-grant-tables【跳过验证权限】  server-id = 1

从服务器:【mysqld】:log-bin=relay-bin  server-id = 2  skip-grant-tables【跳过验证权限】

  注:一定要放行3306端口,否则连接不上!配置成功后,重启mysql服务;我是手动直接点击重启的!

2、登录到主服务器的mysql;创建一个在从服务器上同步时使用的账号;

  创建账户:create user '用户名'@'访问主机' identified by '密码';

  赋予权限:grant 权限列表 on 数据库 to '用户名'@'访问主机' ;【grant replication slave on *.* to 'slave'@'%' identified by 'slave';】

  注:我已经在mysql里创建好了账号和密码,所以直接利用第二句给创建的账号赋予的权限;赋予权限时可以直接给从服务器root赋予权限,也可以给root下子账号赋予权限;

完成之后使用“flush privileges”进行刷新;

3、在主服务器终端获取二进制日志信息;

show master status;

【Linux Mysql主从配置】整理主从配置遇到的坑!

注:file为使用的日志文件名字,position为使用的文件位置,这两个参数须记下,配置从服务器时会用到

4、进入从服务器,进入到mysql,设置连接master主服务器

  change master to master_host='主服务器ip', master_user='账号', master_password='密码',master_log_file='mysql-bin.000008', master_log_pos=107;

  • master_host:主服务器ubuntu的ip地址;
  • master_log_file: 前面查询到的主服务器日志文件名;
  • master_log_pos: 前面查询到的主服务器日志文件位置

【Linux Mysql主从配置】整理主从配置遇到的坑!

 

5、开启同步,查看同步状态

【Linux Mysql主从配置】整理主从配置遇到的坑!

 

6、测试主从同步

在主服务器mysql中创建一个数据库,

【Linux Mysql主从配置】整理主从配置遇到的坑!

在从服务器中查看新建的数据库是否存在;

【Linux Mysql主从配置】整理主从配置遇到的坑!

 

7、其他的坑:

  查看复制账户是否存在且是否赋予权限:mysql> show grants for 'usvr_replication'@'%';  

    +-----------------------------------------------------------------------------------------------------------------------------+
    | grants for usvr_replication@%                                                                                               |
    +-----------------------------------------------------------------------------------------------------------------------------+
    | grant replication slave on *.* to 'usvr_replication'@'%' identified by password '*f4039654d0afd80bb0a7775938efd47acb809529' |
    +-----------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    ————————————————

  从b使用该账户连接至a  mysql -uusvr_replication -h 192.168.83.35 -p -p55944

  如果第一次尝试复制失败后,在进行第二次尝试时候必须停止第一次的链接stop slave;

  上述方法在做的时候未进行从服务器权限配置,因为从服务器在配置完成后已经锁住,当你在从服务器中表中加入数据时候,主服务器数据并不会做出改动。