mysql主从怎么做
原创MySQL主从复制:搭建与配置详解
MySQL主从复制是一种数据库复制技术,它允许一个数据库服务器(主服务器)将事务数据同步到另一个或多个数据库服务器(从服务器)。这对于减成本时间可用性、负载均衡和数据备份至关重要。以下是一个简洁的步骤指南来搭建MySQL主从复制。
### 1. 安装MySQL
首先,确保你已经在从服务器上安装了MySQL。如果尚未安装,可以访问MySQL官网下载适合你的系统的版本并按照说明进行安装。
### 2. 创建主服务器
在主服务器上,登录MySQL并创建一个新的数据库:
```sql
CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON mydb.* TO 'replication_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
```
这里,`mydb`是你的数据库名,`replication_user`是用于复制的用户,`password`是该用户的密码。
### 3. 配置主服务器
编辑主服务器的my.cnf文件(通常是`/etc/mysql/my.cnf`),添加以下行以启用二进制日志(binlog):
```sql
[mysqld]
server-id = 1
log-bin=mysql-bin
binlog-do-db=mydb
expire_logs_days=10
sync_binlog=1
- `server-id`设置主服务器的唯一标识。
- `log-bin`指定二进制日志文件的位置。
- `binlog-do-db`指定哪些数据库应该被复制。
- `expire_logs_days`设置日志保留天数。
- `sync_binlog`确保每次更改都会立即写入二进制日志。
### 4. 启动主服务器并创建复制用户
重启MySQL服务,然后为从服务器创建一个复制用户:
```sql
CREATE USER 'slave_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%';
这里的`slave_user`将是从服务器连接到主服务器的用户名,`password`是该用户的密码。
### 5. 配置从服务器
在从服务器上,同样编辑my.cnf文件,添加以下行:
```sql
[mysqld]
server-id = 2
# 将以下行中的'address'替换为主服务器的实际IP地址和端口
replicate-do-db=mydb
replicate-user='slave_user'
replicate-password='password'
- `server-id`设置从服务器的唯一标识,确保与主服务器不同。
- `replicate-do-db`指定从服务器要复制哪个数据库。
- `replicate-user`和`replicate-password`用于连接到主服务器。
### 6. 初始化从服务器
启动从服务器,然后执行初始化:
```sql
CHANGE MASTER TO
MASTER_HOST='
',MASTER_USER='slave_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=
; START SLAVE;
这里的`
`是主服务器的IP地址和端口,`### 7. 监控和调整
从现在起始,从服务器会自动从主服务器拉取更改。你可以通过`SHOW SLAVE STATUS\G`命令检查复制状态。如果需要调整,如更改复制位置,只需再次运行`CHANGE MASTER TO`命令。
这就是MySQL主从复制的基本配置过程。按照你的需求,大概还需要考虑其他因素,比如故障恢复、延迟复制等。期待对你有所帮助!