当前位置:首页 > 行业动态 > 正文

如何正确配置MySQL从服务器?

MySQL从服务器配置涉及设置 serverid、启用二进制日志和指定主服务器信息。

MySQL从服务器配置

准备工作

在配置MySQL从服务器之前,需要确保主服务器和从服务器的MySQL版本尽量保持一致,还需要两台服务器:一台作为主服务器(IP设为192.168.1.100),另一台作为从服务器(IP设为192.168.1.130),待同步的数据库名为slaveDB。

配置主服务器

1、修改主服务器的MySQL配置文件

编辑/etc/my.cnf文件:

“`ini

serverid = 1

logbin = mysqlbin

binlogdodb = slaveDB

binlogignoredb = mysql

“`

serverid:这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错。

logbin:二进制日志文件,此项为必填项,否则不能同步数据。

binlogdodb:需要同步的数据库,如果需要同步多个数据库,则继续添加此项。

binlogignoredb:不需要同步的数据库。

2、保存并重启MySQL服务

执行以下命令以使更改生效:

“`bash

service mysql restart

“`

3、查看同步和不同步的数据库

登录MySQL,执行以下命令:

“`sql

SHOW VARIABLES LIKE ‘server_id’;

SHOW MASTER STATUS;

“`

4、添加一个同步用户并授权

在主服务器上创建一个用于从服务器同步的用户并授权:

“`sql

如何正确配置MySQL从服务器?  第1张

CREATE USER ‘slaveUser’@’192.168.1.130’ IDENTIFIED BY ‘password’;

GRANT REPLICATION SLAVE ON *.* TO ‘slaveUser’@’192.168.1.130’;

FLUSH PRIVILEGES;

“`

5、锁表并备份数据

在导出数据时,需保证主库上锁,等从库导入并启动后解锁:

“`sql

FLUSH TABLES WITH READ LOCK;

mysqldump uroot p alldatabases > /backup/alldatabases.sql

UNLOCK TABLES;

“`

配置从服务器

1、准备从服务器

将从服务器的主数据库备份文件导入到从服务器中:

“`bash

scp /backup/alldatabases.sql root@192.168.1.130:~

“`

2、编辑从服务器的MySQL配置文件

编辑/etc/my.cnf文件:

“`ini

如何正确配置MySQL从服务器?  第2张

serverid = 2

logbin = mysqlbin

replicatedodb = slaveDB

replicateignoredb = mysql

read_only = 1

“`

serverid:从服务器的唯一ID,不能与主服务器相同。

replicatedodb:需要同步的数据库。

replicateignoredb:忽略的数据库。

read_only:将该从服务器设置为只读权限。

3、保存并重启MySQL服务

执行以下命令以使更改生效:

“`bash

service mysql restart

“`

4、设置主从同步

在从服务器上执行以下命令:

“`sql

CHANGE MASTER TO

如何正确配置MySQL从服务器?  第3张

MASTER_HOST=’192.168.1.100′,

MASTER_USER=’slaveUser’,

MASTER_PASSWORD=’password’,

MASTER_LOG_FILE=’mysqlbin.000001′,

MASTER_LOG_POS=154;

START SLAVE;

“`

5、验证主从同步状态

登录MySQL,执行以下命令检查从服务器的状态:

“`sql

SHOW SLAVE STATUSG;

“`

主要查看Slave_IO_RunningSlave_SQL_Running是否都为YES。

FAQs

Q1: 为什么主从服务器的版本需要尽量保持一致?

A1: 如果主从服务器的版本不一致,可能会导致兼容性问题,从而影响数据的一致性和同步的稳定性,建议保持主从服务器的MySQL版本一致。

Q2: 如何查看主从复制的状态是否正常?

A2: 可以通过在从服务器上执行SHOW SLAVE STATUSG;命令来查看复制状态,主要关注Slave_IO_RunningSlave_SQL_Running两个参数是否都为YES,如果是,说明主从复制运行正常。

0