
通过将一台数据库服务器设置为主服务器(Master),其他服务器设置为从服务器(Slave),实现数据的复制和同步,从而能够在主服务器出现故障时快速切换到从服务器,保证系统的连续性
本文将详细介绍在Linux系统下如何安装和配置MySQL主从服务器
一、准备工作 在进行MySQL主从配置之前,需要做好以下准备工作: 1.环境要求: 两台Linux服务器,分别作为主服务器和从服务器
- 确保两台服务器之间的网络互通,并且防火墙允许MySQL端口(默认3306)的通信
- 推荐主从MySQL版本一致,或从库版本高于等于主库版本
2.数据一致性建议: - 如果主库已有数据,需先同步到从库
可以使用mysqldump工具进行数据导出和导入,确保主从库数据一致
二、安装MySQL 在Linux系统上,可以使用包管理工具如apt、yum等安装MySQL
以下是使用yum安装MySQL的示例步骤: 1.更新系统软件包列表: bash sudo yum update -y 2.安装MySQL: bash sudo yum install mysql-server -y 3.启动MySQL服务并设置开机自启: bash sudo systemctl start mysqld sudo systemctl enable mysqld 4.查找并设置MySQL root用户密码: MySQL安装完成后,会在/var/log/mysqld.log文件中生成一个临时密码
使用以下命令查找并设置新密码: bash sudo grep temporary password /var/log/mysqld.log 然后使用找到的临时密码登录MySQL,并设置新密码: bash mysql -u root -p ALTER USER root@localhost IDENTIFIED BY NewPassword123!; FLUSH PRIVILEGES; 三、配置主服务器(Master) 1.修改MySQL配置文件: 编辑主服务器的/etc/my.cnf文件,添加或修改以下配置: ini 【mysqld】 server-id=1 设置唯一ID,主服务器通常设置为1 log-bin=mysql-bin启用二进制日志 binlog_format=ROW 推荐使用ROW模式 expire_logs_days=7 日志保留天数 max_binlog_size=100M 单个日志文件大小 skip_name_resolve=ON跳过域名解析(可选) 2.重启MySQL服务: bash sudo systemctl restart mysqld 3.创建复制用户: 登录MySQL,创建一个用于从服务器复制的账户,并赋予REPLICATION SLAVE权限: sql CREATE USER repl@% IDENTIFIED BY YourPassword123!; GRANT REPLICATION SLAVE ON. TO repl@%; FLUSH PRIVILEGES; 4.查看主库状态: 记录主库状态中的File和Position值,从库配置时需要用到: sql SHOW MASTER STATUS; 四、配置从服务器(Slave) 1.修改MySQL配置文件: 编辑从服务器的/etc/my.cnf文件,添加或修改以下配置: ini 【mysqld】 server-id=2 设置唯一ID,不能与主服务器相同 relay-log=mysql-relay-bin启用中继日志 read_only=ON 设置从服务器为只读(可选,确保数据安全) 2.重启MySQL服务: bash sudo systemctl restart mysqld 五、同步主服务器现有数据(可选) 如果主服务器已有数据,需要先将这些数据同步到从服务器
可以使用mysqldump工具进行数据导出和导入
1.在主服务器上导出数据: bash mysqldump -uroot -p --all-databases --master-data=1 > /tmp/master_dump.sql 该命令会导出所有数据库,并包含二进制日志的位置信息
2.将备份文件传输到从服务器: 使用scp命令将备份文件从主服务器传输到从服务器: bash scp /tmp/master_dump.sql root@slave_ip:/tmp/ 3.在从服务器上导入数据: bash mysql -uroot -p < /tmp/master_dump.sql 六、配置从服务器连接主服务器 1.设置主服务器连接信息: 登录从服务器的MySQL,执行CHANGE MASTER TO命令,指定主服务器的IP地址、账户和密码等信息: sql CHANGE MASTER TO MASTER_HOST=主服务器IP, MASTER_USER=repl, MASTER_PASSWORD=YourPassword123!, MASTER_LOG_FILE=mysql-bin.xxxxxx, --替换为主服务器SHOW MASTER STATUS的File值 MASTER_LOG_POS=xxxxxx;--替换为主服务器的Position值 2.启动复制: 在从服务器上执行START SLAVE命令,启动复制进程: sql START SLAVE; 3.检查复制状态: 执行SHOW SLAVE STATUSG命令,检查复制状态
关键字段包括: Slave_IO_Running: Yes Slave_SQL_Running: Yes - Seconds_Behind_Master: 0(表示无延迟) 如果出现错误,需要检查Last_IO_Error或Last_SQL_Error字段,定位并解决问题
七、验证主从复制 在主服务器上创建一个测试数据库和表,并插入数据
然后在从服务器上查询这些数据,验证主从复制是否成功
1.在主服务器上创建测试数据库和表: sql CREATE DATABASE test_repl; USE test_repl; CREATE TABLE demo(id INT); INSERT INTO demo VALUES(1); 2.在从服务器上查询数据: sql USE test_repl; SELECTFROM demo; 如果查询结果与主服务器一致,则主从复制配置成功
八、常见问题排查 1.连接失败: 检查主从服务器的防火墙设置,确保3306端口开放
检查MySQL用户权限和密码是否正确
2.主从数据不一致: - 重新导出主库数据并重置从库复制:执行STOP SLAVE和RESET SLAVE ALL命令,然后重新执行CHANGE MASTER TO和START SLAVE命令
检查从库性能或网络带宽,确保复制过程不受影响
3.复制延迟: 检查主从服务器的硬件性能和网络带宽,优化复制环境
- 调整MySQL配置参数,如sync_binlog、innodb_flush_log_at_trx_commit等,减少复制延迟
九、维护命令 1.停止复制: 在从服务器上执行STOP SLAVE命令,停止复制进程
2.重置从库: 执行RESET SLAVE ALL命令,重置从库复制状态
3.跳过错误(慎用): 如果复制过程中遇到错误且无法自动恢复,可以执行SET GLOBAL sq
MySQL5.7.26 IP配置详解
Linux系统下MySQL主从配置安装指南
MySQL数据库高效拷贝技巧
MySQL新技能:轻松在指定字段后添加新字段(注:这个标题简洁明了,直接点明了文章的
揭秘MySQL培训费用:高性价比学习指南
MySQL隔离级别调整:提升性能,降低隔离级别的智慧之举
MySQL引领分库分表技术革命
MySQL5.7.26 IP配置详解
MySQL数据库高效拷贝技巧
MySQL新技能:轻松在指定字段后添加新字段(注:这个标题简洁明了,直接点明了文章的
揭秘MySQL培训费用:高性价比学习指南
MySQL隔离级别调整:提升性能,降低隔离级别的智慧之举
MySQL引领分库分表技术革命
真实MySQL迁移实战指南
小白必看:MySQL学习入门指南
MySQL注册与秘钥获取指南
MySQL主键修改之谜:原理深探与实操指南这个标题既涵盖了“mysql 修改主键原理”的关
MySQL主键自增步长为3设置指南
MySQL数据库删除失败解决攻略