Linux系统下MySQL主从配置安装指南
linux如何安装配置mysql主从

首页 2025-07-26 08:33:36



Linux系统下MySQL主从配置详细指南 MySQL数据库的主从配置是一种提高数据库可用性、可靠性和性能的重要手段

    通过将一台数据库服务器设置为主服务器(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

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道