mysql主从同步命令
时间: 2023-10-24 13:24:05 浏览: 115
mysql主从同步
MySQL主从同步有两种方式:基于语句的复制和基于行的复制。无论使用哪种方式,都需要进行以下几个步骤:
1. 在主服务器上开启二进制日志功能
2. 在主服务器上创建一个用于从服务器连接的用户,并赋予该用户复制权限
3. 在从服务器上配置主服务器的相关信息,并启动从服务器的复制进程
以下是基于语句的复制的具体命令行操作:
1. 在主服务器上开启二进制日志功能
```
vim /etc/my.cnf
```
在 [mysqld] 段中添加如下配置:
```
log-bin=mysql-bin
binlog-format=statement
```
保存并退出,重启 MySQL 服务使配置生效。
2. 在主服务器上创建一个用于从服务器连接的用户,并赋予该用户复制权限
```
CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
```
注意:在 MySQL 8.0 版本及以上,需要将 REPLICATION SLAVE 改为 REPLICATION SLAVE PROXY。
3. 在从服务器上配置主服务器的相关信息,并启动从服务器的复制进程
```
vim /etc/my.cnf
```
在 [mysqld] 段中添加如下配置:
```
server-id=2
relay-log=mysql-relay-bin
log_slave_updates=1
read_only=1
```
其中,server-id 是从服务器的唯一标识符,可以设置为任意整数;relay-log 是从服务器用于存储复制事件的日志文件;log_slave_updates=1 表示从服务器将接收到的变更事件也写入自己的二进制日志文件中;read_only=1 表示从服务器只能读取数据,不能写入数据。
保存并退出,重启 MySQL 服务使配置生效后,执行以下命令启动从服务器的复制进程:
```
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=100;
START SLAVE;
```
其中,MASTER_HOST 是主服务器的 IP 地址;MASTER_USER 和 MASTER_PASSWORD 是在主服务器上创建的用于从服务器连接的用户和密码;MASTER_LOG_FILE 和 MASTER_LOG_POS 分别是主服务器当前二进制日志文件的名称和位置,可以通过在主服务器上执行 SHOW MASTER STATUS 命令获取。
至此,基于语句的复制的主从同步已经完成。
阅读全文