Mysql主从数据库复制详细步骤

  1. 如果主库已经有数据,为了数据一致性,需要把主库数据复制一份到从数据库,可以使用mysqldump,或者一些管理工具如何Sqlyog进行物理同步

  2. 修改主库mysql配置文件

    [mysqld]
    server-id = 1           # 唯一的服务ID
    log_bin = mysql-bin     # 开启二进制日志
    binlog_do_db = database_name  # 需要复制的数据库名,如果要复制所有数据库,可以使用 *
    binlog_do_db = database_name2  # 也可以指定多个数据库名```
    
  3. 配置完成,需要重启mysql

    sudo systemctl restart mysqld
    
  4. 登录mysql数据库,创建一个复制账户

    mysql -u root -p #登录数据库
    CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; #replicator 账户名 password密码
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES; #刷新权限```
    
    
  5. 复制用户创建完,需要在从服务器测试,看是否能请求到主数据库

    telnet 192.168.80.129 3306
    
  6. 如果请求不到主数据库,需要检查3306端口是否对外开放以及防火墙是否开放,具体操作请查资料,这里不做赘述

  7. 配置从服务器

    [mysqld]
    server-id = 2           # 唯一的服务ID,与主服务器不同
    relay_log = slave-relay-bin  # 中继日志文件名,可选配置
    
  8. 配置完,需要重启mysql服务

    sudo systemctl restart mysqld
    
  9. 登录主服务器MySql,执行以下命令获取二进制日志的位置和文件名

    SHOW MASTER STATUS;
    

    记录下File和Position的值,例如:mysql-bin.000003和120。
    10. 登录从服务器MySql,执行以下命令配置从服务器

    CHANGE MASTER TO
    MASTER_HOST='主服务器IP',
    MASTER_USER='replicator',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000003',  # 上一步获取的文件名
    MASTER_LOG_POS=120;                  # 上一步获取的位置值
    
  10. 启动复制进程

    START SLAVE;
    
  11. 检查从服务器复制状态

    SHOW SLAVE STATUS\G;
    

检查看,Slave_IO_Running和Slave_SQL_Running是否都为Yes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值