文章目录
- 前言
- [一、安装 MySQL](#一、安装 MySQL)
- 二、主服务器(Master)配置
- 三、从服务器(Slave)配置
- 四、测试主从复制
- 五、注意事项
前言
MySQL 主从配置是一种实用的数据库架构,主服务器处理写入操作,从服务器负责只读操作,能提升性能、加强冗余、扩展可读性 。下面以常见的 Linux 系统(CentOS 7 )、MySQL 8.0 版本为例,为你介绍配置步骤。
一、安装 MySQL
MySQL8.0 超详细安装配置教程(附安装包):https://blog.csdn.net/u014164303/article/details/145493332
在主服务器和从服务器上都执行以下操作:
- 更新系统软件包:打开终端,输入命令sudo yum update -y ,更新系统已安装的软件包。
- 安装 MySQL 官方仓库:执行sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ,安装 MySQL 官方的 yum 源。
- 安装 MySQL 服务器:输入sudo yum install -y mysql-server ,安装 MySQL 服务器程序。
- 启动 MySQL 服务:使用sudo systemctl start mysqld ,启动 MySQL 服务。
- 设置开机自启:执行sudo systemctl enable mysqld ,让 MySQL 服务在开机时自动启动。
初始化 MySQL: - 获取临时密码:通过sudo grep 'temporary password' /var/log/mysqld.log ,获取初始的临时密码。
- 登录 MySQL:输入mysql -u root -p ,然后粘贴刚才获取的临时密码登录。
- 修改密码:运行ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword'; ,把密码修改为自己设定的新密码。
二、主服务器(Master)配置
- 编辑 MySQL 配置文件:使用命令sudo vi /etc/my.cnf 打开配置文件,添加或修改以下内容:
- server-id = 1 :设置服务器唯一 ID,必须是正整数,且主从服务器的 ID 不能相同。
- log-bin = mysql-bin :开启二进制日志,用于记录数据库的更改操作。
- expire-logs-days = 10 :指定二进制日志的过期时间,可按需调整。
- max-binlog-size = 100M :设置二进制日志文件的最大大小。
- binlog-do-db = your_database_name :指定允许复制的数据库,可根据实际情况修改,若要复制多个数据库,可重复此配置项。
- 保存并退出文件后,执行sudo systemctl restart mysqld 重启 MySQL 服务使配置生效。
- 创建用于复制的用户:登录 MySQL,执行以下命令:
CREATE USER'repl_user'@'%' IDENTIFIED BY 'YourReplicationPassword';
GRANT REPLICATION SLAVE ON . TO'repl_user'@'%';
FLUSH PRIVILEGES;
上述命令创建了名为repl_user的用户,设置其密码为YourReplicationPassword ,并赋予其主从复制相关权限,最后刷新权限。
- 获取二进制日志信息:在 MySQL 中执行SHOW MASTER STATUS; ,记录下File和Position的值,后续配置从服务器时会用到。
三、从服务器(Slave)配置
- 编辑 MySQL 配置文件:用sudo vi /etc/my.cnf 打开文件,添加或修改以下配置:
server-id = 2 :设置从服务器唯一 ID,不能与主服务器及其他从服务器相同。
保存并退出后,执行sudo systemctl restart mysqld 重启 MySQL 服务。 - 配置从服务器连接主服务器:登录 MySQL,执行以下命令配置从服务器连接主服务器:
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='repl_user',
MASTER_PASSWORD='YourReplicationPassword',
MASTER_LOG_FILE='主服务器二进制日志文件名',
MASTER_LOG_POS=主服务器二进制日志位置;
将MASTER_LOG_FILE和MASTER_LOG_POS替换为在主服务器上执行SHOW MASTER STATUS; 时记录的值。
-
启动从服务器复制进程:在 MySQL 中执行START SLAVE; ,启动从服务器的复制进程。
-
检查从服务器状态:执行SHOW SLAVE STATUS\G; ,确保Slave_IO_Running和Slave_SQL_Running的值都为Yes ,表示复制进程正常运行。
四、测试主从复制
在主服务器上创建测试数据库和表:登录主服务器的 MySQL,执行以下命令:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('Test Data');
在从服务器上检查数据复制情况:登录从服务器的 MySQL,执行以下命令:
USE test_db;
SELECT * FROM test_table;
若能看到主服务器上插入的数据,说明主从复制配置成功。
五、注意事项
- 网络连接:主从服务器间需能正常通信,确保防火墙允许 MySQL 端口(默认 3306 )的流量通过。
- 数据一致性:配置主从复制前,保证主从服务器数据一致,可通过数据备份和恢复来实现。
- 日志管理:定期清理二进制日志文件,避免占用过多磁盘空间,可依据expire-logs-days和max-binlog-size配置管理。