美文网首页工作生活
mysql8.0主从复制

mysql8.0主从复制

作者: 不给起这个名字 | 来源:发表于2019-07-09 11:57 被阅读0次

    mysql主从复制作用:数据库备份、读写分离、高可用、集群
    原理:二进制sql执行文件(binlog)。主机有写的操作修改了数据。会把二进制sql日志文件给从机同步数据

    主机:有读(select)和写(insert、update、delete、create)的权限
    备(从)机:有读的权限    (使用mycat来禁止从机人为作写操作)
    

    mysql主从复制步骤
    主服务器配置:
    vi /etc/my.cnf 新增以下内容
    server_id=177 ###服务器id
    log-bin=mysql-bin ###开启日志文件
    binlog-ignore-db=mysql #不参与主从的数据库名,不参与主从复制的数据库名mysql
    binlog-do-db = db_store #需要进行binlog日志记录的数据库,多个请另起一行设置binlog_do_db=需要同步的数据库名称,不写全部数据库都备份(binlog日志记录作用是给从服务器进行同步数据)

    重启mysql服务
    systemctl restart mysqld
    主服务器给从服务器账号授权
    进入mysql
    mysql -u root -p
    密码
    GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'Qq123!@#'; 一般不用root帐号 随意账号 给从服务器对应
    注意:在mysql8.0不能直接用上面的。要先创建再授权
    create user 'mysync'@'%' identified WITH mysql_native_password by 'Qq123!@#'; (创建用户)
    GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' ; (用户授权)
    flush privileges; 刷新
    登录主服务器的mysql,查询master的状态
    show master status;


    image.png

    File如果结果为null,则主服务器my.cnf没有配置好.

    从服务器操作:
    将安装好mysql的服务器再克隆一台。要改mac地址
    1、因为克隆的mysql会有相同的uuid 要修改mysql的uuid使之不相同
    vi /var/lib/mysql/auto.cnf 修改uuid,长度要相同
    没修好的话会报

    image.png
    如果不是克隆的虚拟机,忽略上面的修改操作
    接下来继续从服务器的操作
    vi /etc/my.cnf 新增以下内容
    server_id=178 ###服务器id
    log-bin=mysql-bin ###开启日志文件
    replicate-do-db= db_store ###需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
    重启mysql服务
    systemctl restart mysqld

    进入mysql
    mysql -u root -p
    密码

    stop slave
    master_host表示主服务器ip
    change master to master_host='192.168.219.128',master_user='mysync',master_password='Qq123!@#',
    master_log_file='mysql-bin.000002',master_log_pos=343;

    start slave

    检查从服务器复制功能状态
    SHOW SLAVE STATUS \G
    Slave_IO_Running: Yes //此状态必须YES
    Slave_SQL_Running: Yes //此状态必须YES
    完成!


    image.png

    读写分离(分库):主从两台数据库服务器。主数据库能写,从数据库只能读
    mysql本身没有实现读写分离的功能,需要用到mycat中间件

    开一台服务器作mycat 数据库中间件配置,能实现反向代理,数据库服务器通过添加mycat账号来进行权限分配。
    使用mycat账号和mycat当前服务器的ip地址进行登陆,就能实现读写分离,主要与主数据库关联
    在mycat数据库上做操作,从数据库如果设置了这个数据库的同步,也会进行同步
    mycat默认端口号8066

    相关文章

      网友评论

        本文标题:mysql8.0主从复制

        本文链接:https://www.haomeiwen.com/subject/agydhctx.html