MYSQL主从配置

1、Mysql主从配置

MySQL的主备(主从)配置是一种常见的数据高可用性和数据备份方案,主要用于实现数据的实时复制,确保数据的一致性和系统的容错能力。下面我将详细介绍如何配置MySQL的主备环境。

1.1、 环境准备

确保你的服务器上已经安装了MySQL,并且至少有两台服务器,一台作为主服务器(Master),另一台作为从服务器(Slave)。

2. 配置主服务器(Master)

修改配置文件

在主服务器的MySQL配置文件(通常是my.cnfmy.ini)中添加或修改以下配置:

 [mysqld]
 server-id = 1                   # 唯一的服务ID,Master设为1
 log-bin = mysql-bin            # 启用二进制日志
 binlog-do-db = your_database   # 需要复制的数据库名,如果要复制所有数据库,可以使用 *

重启mysql服务

systemctl restart mysqld

创建复制用户

登录MySQL,创建一个用于复制的专用用户:

 # 创建用户并设置密码
 # 创建一个名为 replicator 的用户,@'%' 表示该用户可以从任何主机(远程或本地)连接数据库 IDENTIFIED BY 'password'•:为用户设置密码为 password
 CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
 # MySQL 中用于配置复制权限的 SQL 命令,命令解析如下:
 # GRANT REPLICATION SLAVE•:授予复制权限,允许用户进行数据同步操作。
 # ON *.*:表示对所有数据库和表生效。
 # TO 'replicator'@'%':将权限授予用户 replicator,并允许该用户从任何主机连接(% 表示任意主机)
 GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
 ​
 FLUSH PRIVILEGES; # 配置生效

查看二进制日志位置和文件名

SHOW MASTER STATUS;

记录下FilePosition的值,稍后配置从服务器时会用到。

3. 配置从服务器(Slave)

修改配置文件

在从服务器的MySQL配置文件中添加或修改以下配置:

 [mysqld]
 server-id = 2                   # 唯一的服务ID,Slave设为2,与Master不同
 relay-log = slave-relay-bin    # 中继日志文件名,可选配置
 read_only = 1                  # 从服务器设置为只读模式,可选配置,防止误操作修改数据

重启MySQL服务

systemctl restart mysqld

配置复制源(Slave连接Master)

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

 CHANGE MASTER TO
     MASTER_HOST='master_ip',       # 主服务器IP地址
     MASTER_USER='replicator',      # 复制用户名称
     MASTER_PASSWORD='password',    # 复制用户密码
     MASTER_LOG_FILE='mysql-bin.000001',  # 从SHOW MASTER STATUS得到的File值
     MASTER_LOG_POS=123;                 # 从SHOW MASTER STATUS得到的Position值

注意替换master_ippasswordmysql-bin.000001123为实际的IP地址、密码和日志位置。

启动复制线程

启动复制线程:START SLAVE;

查看从库状态:SHOW SLAVE STATUS\G;

检查Slave_IO_RunningSlave_SQL_Running两个字段是否都为Yes,以确认复制正常运行。

4、测试和验证配置

在主服务器上执行一些数据库操作,然后检查从服务器上的相应数据库是否同步了这些操作。如果一切正常,你的MySQL主备配置就成功了。

posted @ 2025-10-09 11:33  阿尔法哲  阅读(13)  评论(0)    收藏  举报