zoukankan      html  css  js  c++  java
  • Mysql8.0主从配置

    环境Centos7.6 ,mysql8.0

    Mysql主从配置

    1.1 配置环境:

        本人在vm下做的实验,linux版本是centos的7.0版本,然后Mysql版本为此时较新的8.0.13版本。做最为基础的Master-Slave实验,其中两台虚拟机的IP地址如下:

    192.168.106.131---Master,192.168.106.132--Slave

    1.2安装Mysql:

        8.0以后的版本安装与之前差异较大,绿色版安装详情见这里

    mysql主从配置前提条件要求:

    1、服务器版本一致

    2、主服务器日志必须二进制

    3、主服务器-从服务器库的数据要求一致

    4、从数据库不能做写操作

    2.主服务器配置

    2.1、修改my.cnf,添加

      [mysqld]

      log-bin=mysql-bin

      server-id=1

    2.2、重启mysql服务

      service mysqld restart

    2.3、配置mysql

    在mysql数据库中,建立用户同步数据库的账号:

    create user 'repl'@'%' identified with 'mysql_native_password' by '123456';

    TIPS:此处有坑!!!,详情见附录!!!

    给repl用户权限:

    GRANT replication slave ON *.* TO 'repl'@'%';

    GRANT ALL privileges ON *.* TO 'repl'@'%';

    flush privileges;

    查看mysql主服务器日志:

      show master status

      show master statusG(均可)

     
     

    记录下File和Position的值,一会儿再从服务器上配置时使用。

    3.从服务器配置

    3.1、修改my.cnf,添加

      [mysqld]

      log-bin=mysql-bin

      server-id=2

    3.2、重启mysql.server服务

      service mysqld restart

    3.3、在从服务器设置主服务器,实现主从配置

    change master to master_host='192.168.106.131',master_user='root',master_password='P@ssw0rd',master_log_file='mysql-bin.000001' ,master_log_pos=155;

    CHANGE MASTER TO

    MASTER_HOST='192.168.106.131',#Master的ip

    MASTER_USER='repl',#你创建的用户

    MASTER_PASSWORD='123456',#password

    MASTER_LOG_FILE='mysql-bin.000003',#主服务器上的File

    MASTER_LOG_POS=155;#刚刚保存的position

    3.4、开启主从

      start slave

    3.5、检查从服务器状态

      show slave statusG

     
     

    只需要关注这两个参数是否为Yes,其他状态No,connecting均代表有错误!根据错误代码,去检查不同的错误

    但一般就三种:

    1、网络不通 

    2、密码不对 

    3、pos不对

     
    (附录提及error:2061)

    最后测试就不再测试了,只要上面两个参数为Yes就不会有错误。

    Last_IO_Errno:2003

    的错误为连接不上数据库,此时可以试着远程连接
     
     mysql  -uroot  -pc10udch3f -h192.168.88.50  -P3306

    1、查看该用户是否有远程登录的权限

    mysql> SELECT User, Host FROM mysql.user;
    +-----------+-----------+
    | User      | Host      |
    +-----------+-----------+
    | tt        | %         |
    | mysql.sys | localhost |
    | root      | localhost |
    | Laily     | %        |
    | ttt       | %        |
    +-----------+-----------+
    5 rows in set (0.00 sec)

    很显然,tt 是允许从其它服务器登陆的。

    2、查看 MySQL Server 是不是监听了 3306 端口

    [root@centos-linux ~]# netstat -tulpen
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          16801      1507/sshd
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      0          17222      1970/master
    tcp6       0      0 :::3306                 :::*                    LISTEN      27         46396      22054/mysqld
    tcp6       0      0 :::22                   :::*                    LISTEN      0          16803      1507/sshd
    tcp6       0      0 ::1:25                  :::*                    LISTEN      0          17223      1970/master
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          49600      22999/dhclient
    udp        0      0 0.0.0.0:43504           0.0.0.0:*                           0          48850      22999/dhclient
    udp6       0      0 :::47875                :::*                                0          48851      22999/dhclient

    我在这里也没有问题,这里如果没有监听3306端口或者只监听了localhost(0.0.0.0表示监听所有),则在my.cnf添加下面这一行

    bind-address = 0.0.0.0
    

    3、如果服务器是 CentOS7,将 MySQL 服务加入防火墙

    [root@centos-linux ~]# sudo firewall-cmd --zone=public --permanent --add-service=mysql
    success
    [root@centos-linux ~]# sudo systemctl restart firewalld

    我的重启防火墙之后就能正常访问了。

    其他的主从问题

    参考:

    https://www.jianshu.com/p/1c92f28141b0

    https://my.oschina.net/Laily/blog/712958

     
  • 相关阅读:
    postgresql9.1 streaming replication(热备份)
    python 中 theadLocal 的用法
    Python 17
    PYTHON学习笔记-DAY-16
    PYTHON学习笔记-DAY-15---------------------------未完待续
    PYTHON学习笔记-DAY-14
    PYTHON学习笔记-DAY-9
    PYTHON学习笔记-DAY-8
    PYTHON学习笔记-DAY-7
    PYTHON学习笔记-DAY-6
  • 原文地址:https://www.cnblogs.com/guanbin-529/p/13515009.html
Copyright © 2011-2022 走看看