MySQL主从复制配置

MySQL主从复制配置

很简单。

主节点:172.30.0.193

从节点:192.168.199.220

linux:Ubuntu18.04

主节点

  1. 修改配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf ,启用二进制日志文件,[mysqld]下添加:

    server-id = 1
    log_bin = mysql-bin
    binlog_format = mixed
    innodb_file_per_table = ON
    skip_name_resolve = ON
    
    # server-id为当前节点设置一个全局唯一ID
    
  2. 重启MySQL,service mysql restart

  3. 进入MySQL,mysql -u root -p

    1)查看二进制日志是否开启:show global variables like '%log%';

    2)查看保存的二进制文件名:show master status;

    3)创建有复制权限的用户:grant replication slave, replication client on *.* to 'repluser'@'192.168.199.220' identified by 'replpass';

    4)刷新:flush privileges

  4. 开启远程连接

    vim /etc/mysql/mysql.conf.d/mysqld.cnf
    
    # 设为:bind-address = 0.0.0.0
    

从节点

  1. 修改配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf ,启用二进制日志文件,[mysqld]下添加:

    server_id = 2
    relay_log = relay-log
    relay_log_index = relay-log.index
    innodb_file_per_table = ON
    skip_name_resolve = ON
    
  2. 重启MySQL,service mysql restart

  3. 进入MySQL,mysql -u root -p

    1)查看 server 相关信息:show global variables like '%server%';

    2)配置访问主节点

    CHANGE MASTER TO MASTER_HOST='172.30.0.193',MASTER_USER='repluser',MASTER_PASSWORD='replpass', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=0;
    

    MASTER_LOG_FILE 要写 show master status; 输出的文件名,它表示主节点当前正在写入的日志文件,也是日志列表的最后一个,show master logs;

    3)启动复制线程:start slave;

    START SLAVE 可以指定线程类型:IO_THREAD ,SQL_THREAD, 如果不指定,则两个都启动。

    4)查看节点状态:show slave statusG;Slave_IO_RunningSlave_SQL_Running 都已经开启了。

测试

  1. 在主节点创建数据库,并查看主节点二进制日志信息

    create database test_saync;
    
    show master status;
    

  2. 在从节点查找二进制日志文件,并查看 test_saync 数据库是否复制成功


  3. 一主多从时,按照从节点的方法配置多个即可。需要在主节点添加新从节点的连接信息。

主从复制原理、数据同步延时、主库宕机相关问题: MySQL读写分离

参考

原文地址:https://www.cnblogs.com/ldy-miss/p/12706079.html