linux mysql 主从复制

linux mysql 主从复制

步骤一:安装MySQL

sudo apt-get update
sudo apt-get install mysql-server

步骤二:配置主从复制

配置主服务器数据库

在主服务器上,我们需要修改MySQL的配置文件my.cnf,添加以下内容:

server-id = 1
log-bin = mysql-bin
binlog-do-db = your_database_name
auto_increment_offset = 1 
auto_increment_increment = 2 

server-id 唯一标识
log-bin 启用二进制日志
binlog-do-db 为指定复制的数据库,如果有多个库重复使用该属性
auto_increment_offset 和 auto_increment_increment 解决自增主键冲突。这样主库的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了

重启数据库

sudo systemctl restart mysqld

配置从服务器数据库

server-id = 2
log-bin = mysql-bin
replicate-do-db = your_database_name
auto_increment_offset = 2 
auto_increment_increment = 2 

2, 4, 6, 8, …等偶数ID

重启数据库

sudo systemctl restart mysqld

步骤三:配置主从复制关系

登录数据库操作

sudo mysql -u root -p

在主服务器上,我们需要创建一个用于从服务器同步的账号,并授权该账号的权限:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

然后查看主服务器的状态信息:

SHOW MASTER STATUS;

记住File和Position的值,稍后在从服务器上会用到。

在从服务器上,连接主服务器,并配置主从复制关系:

CHANGE MASTER TO MASTER_HOST='服务器ip', MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107, MASTER_PORT=3001;

其中MASTER_LOG_FILE就是上述File,MASTER_LOG_POS对应Position的值,MASTER_PORT 主服务器数据库端口

然后启动从服务器的复制:
这是在MySQL 5.x版本中使用的命令。
启动

START SLAVE;

停止

STOP SLAVE;

是在MySQL 8.0及更高版本中使用的命令

启动

START REPLICA;

停止

STOP REPLICA;

步骤四:检查主从复制状态

通过以下命令可以查看主从服务器的复制状态:

SHOW SLAVE STATUS \G

如果有错误请看错误日志

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值