美文网首页
centos7下实现mysql主从复制(下面有主主复制配置)

centos7下实现mysql主从复制(下面有主主复制配置)

作者: 过来摸摸头丶 | 来源:发表于2018-11-02 15:08 被阅读0次

步骤:

1.在主服务器上修改配置文件

    vi /etc/my.cnf

    添加:log-bin=mysql-bin         server-id=1    log-slave-updates

    退出后重启服务:systemctl restart mysqld.service

2.在从服务器上修改配置文件

    vi /etc/my.cnf

    添加:relay-log=relay-bin       server-id=2

    退出后重启服务:systemctl restart mysqld.service

3.查看从服务器的中继日志是否启动成功:mysql > show global variables like '%relay%';

4.在主服务器上创建有复制权限的账号

    grant replication slave on *.* to 'user1'@'172.16.92.%' identified by '1234';

    刷新权限:flush privileges;

5.在主服务器上查看状态信息:

    mysql > show master status;

补充:如果要拷贝数据,以下命令:

    在有数据的服务器上:

    [root@master~]# mysql -u root -proot

    mysql>flush tables with read lock;

    [root@master~]# mysqldump --all-databases -uroot -p >all_databases.sql

    [root@master ~]# mysql -uroot -proot

    mysql> unlock tables;

    [root@master ~]# scp all_databases.sql root@172.16.92.141:/root

    在要备份的服务器上:

    [root@slave ~]# mysql -uroot -p -hlocalhost -P3306 --default-character-set=utf8 < all_databases.sql  
    或者  mysql -uroot -proot
        mysql>source /root/all_databases.sql;

6.从服务器上:stop slave;

7.从服务器上连接主服务器

    change master to master_host='主服务器的ip',master_user='slave_user',master_password='1234',master_log_file='mysql-bin.000001',master_log_pos=609;

    change master to master_host='172.16.92.151',master_user='user2',master_password='1234',master_log_file='mysql-bin.000007',master_log_pos=1438;

8.启动复制线程:start slave;

    show slave status \G;

    Slave_IO_Running和Slave_SQL_Running两个线程必须都为Yes。

    systemctl stop firewalld.service

9.测试

注意:检查连通性,如果不通则关闭防火墙:systemctl stop firewalld.service

注意:搭好后,停掉从服务器,在开启会报错,原因是从服务器的配置文件被修改了。

主主复制:

主机1:
    # my add
    [client]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
    server-id = 1
    log-bin=mysql-bin
    log-slave-updates
    auto-increment-increment=2
    auto-increment-offset=1
    max_connections=40
主机2:
    # my add
    [client]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
    server-id=2
    relay-log=relay-bin 
    log-bin=mysql-bin
    log-slave-updates
    auto-increment-increment=2
    auto-increment-offset=2
    max_connections=40

字符集设置后使用    sudo systemctl restart mysqld.service   重启

查看字符集命令:

    SHOW VARIABLES LIKE 'character%';

相关文章

网友评论

      本文标题:centos7下实现mysql主从复制(下面有主主复制配置)

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