linux配置mysql主从同步

配置梳理

  1. 主数据库
    开启二进制日志
    设置唯一id
    获取二进制文件名和位置
    创建用于通信的账号
  2. 从数据库
    设置唯一id
    使用分配的账号读取主数据库的二进制日志

准备工作

主数据库:192.168.0.201
从数据库:192.168.0.202

主数据库配置

  1. 进入配置文件
    vim /etc/my.cnf
  2. 添加两行
    log-bin=mysql-bin #开启二进制日志
    server-id=201 #设置server-id,唯一值,标识主机
  3. 重启服务
    service mysql restart
  4. 创建账号密码
    进入mysql
    mysql -u root -p
    创建用户(IP为可访问该master的IP,任意IP就写‘%‘)
    CREATE USER ‘slave_userid‘@‘%‘ IDENTIFIED BY ‘slave_pwd‘;
    查看用户是否创建成功
    select user,host from mysql.user;
    分配权限(IP为可访问该 master的IP,任意IP就写‘%‘)
    GRANT REPLICATION SLAVE ON . TO ‘slave_userid‘@‘%‘;
  5. 刷新权限
    flush privileges;
  6. 查看master状态,记录二进制文件名File和位置Position,后面配从库要用
    show master status;

从数据库配置

  1. 进入配置文件
    vim /etc/my.cnf
  2. 添加一行
    server-id=202 #设置server-id,唯一值,标识主机
  3. 重启服务
    service mysql restart
  4. 登录进入mysql,执行同步sql语句(主服务器名,用于主从的用户名,密码,二进制文件名,位置)
    mysql -u root -p
CHANGE MASTER TOMASTER_HOST='192.168.0.201',MASTER_USER='slave_userid',MASTER_PASSWORD='slave_pwd',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=755;
  1. 启动slave同步进程
    start slave;
  2. 查看slave状态,当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了
    show slave status\G
  3. 可以改数据验证同步,可以stop slave;执行看看效果
  4. 其他
    不同步哪些数据库
    binlog-ignore-db = mysql
    binlog-ignore-db = test
    binlog-ignore-db = information_schema
    只同步哪些数据库,除此之外,其他不同步
    binlog-do-db = game

相关文章