mysql主从复制脚本
时间: 2024-09-05 12:05:09 浏览: 103
mysql主从复制
5星 · 资源好评率100%
MySQL的主从复制是一种数据复制的方法,它允许从一个MySQL数据库服务器(主服务器)自动复制数据到一个或多个MySQL数据库服务器(从服务器)。通过这种方式,你可以进行数据备份或者将读取操作分散到多个服务器上,以减轻主服务器的负担。
实现MySQL主从复制,通常需要在主服务器和从服务器上执行一些脚本配置。以下是实现MySQL主从复制的一个简化版脚本示例:
1. 在主服务器上,你需要启用二进制日志(binlog),这样所有的更改都会被记录下来。你可以通过修改`my.cnf`配置文件来实现这一点:
```ini
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
```
然后重启MySQL服务,并创建一个具有复制权限的用户:
```sql
CREATE USER 'replicator'@'%' IDENTIFIED BY 'replication_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
```
使用`SHOW MASTER STATUS;`命令来获取主服务器的状态,记录下`File`和`Position`的值。
2. 在从服务器上,你需要配置连接到主服务器的信息,并指定需要复制的数据库。同样修改`my.cnf`配置文件:
```ini
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
replicate_do_db = your_database_name
```
然后重启MySQL服务,并配置从服务器连接到主服务器:
```sql
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
START SLAVE;
```
3. 最后,检查从服务器的状态确保复制正常运行:
```sql
SHOW SLAVE STATUS\G
```
查看`Slave_IO_Running`和`Slave_SQL_Running`两个状态,如果都是`Yes`,那么复制正在正常运行。
阅读全文