mysql主从怎么做

原创
ithorizon 11个月前 (06-15) 阅读数 127 #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地址和端口,``是主服务器二进制日志的起始位置,通常可以通过`SHOW MASTER STATUS;`查询获取。

### 7. 监控和调整

从现在起始,从服务器会自动从主服务器拉取更改。你可以通过`SHOW SLAVE STATUS\G`命令检查复制状态。如果需要调整,如更改复制位置,只需再次运行`CHANGE MASTER TO`命令。

这就是MySQL主从复制的基本配置过程。按照你的需求,大概还需要考虑其他因素,比如故障恢复、延迟复制等。期待对你有所帮助!

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: MySQL


热门