MySQL5.6主从复制安装指南
mysql 5.6主从安装

首页 2025-07-20 06:00:27



MySQL5.6主从安装与配置详解 在当今的数据库环境中,高可用性、数据冗余和负载均衡是数据库管理员(DBA)和开发人员共同关注的重要议题

    MySQL,作为一款开源的关系型数据库管理系统(RDBMS),通过其主从复制功能,提供了实现这些目标的有效手段

    本文将详细介绍如何在两台服务器上安装和配置MySQL5.6的主从复制环境

     一、安装前准备 在安装MySQL5.6之前,我们需要做一些准备工作,以确保安装和配置过程的顺利进行

     1.系统环境检查: - 确保服务器上未安装其他版本的MySQL,以避免版本冲突

     - 检查服务器的操作系统版本,MySQL 5.6支持多种操作系统,如CentOS、Red Hat等

     - 确保服务器的防火墙已开放3306端口,这是MySQL的默认通信端口

     2.下载MySQL安装包: - 从MySQL官方网站下载与操作系统版本相匹配的MySQL5.6安装包

    例如,对于CentOS6.5,可以下载`mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz`

     3.创建MySQL用户和组: - 为了安全起见,MySQL通常不以root用户运行

    因此,我们需要创建一个专门的MySQL用户和组

     bash groupadd mysql useradd -s /sbin/nologin -M -g mysql mysql 二、MySQL5.6安装步骤 以下是MySQL5.6在CentOS6.5上的详细安装步骤: 1.解压安装包: bash cd /usr/local wget https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz tar zxvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz ln -s mysql-5.6.38-linux-glibc2.12-x86_64 mysql 2.初始化数据库实例: bash chown -R mysql:mysql /usr/local/mysql/data /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 3.配置MySQL: 在`/etc`目录下创建或修改`my.cnf`文件,添加以下内容: ini 【client】 port=3306 socket=/tmp/mysql.sock 【mysqld】 port=3306 socket=/tmp/mysql.sock basedir=/usr/local/mysql datadir=/usr/local/mysql/data 4.启动MySQL服务: MySQL可以通过多种方式启动,以下是使用`mysqld_safe`命令启动的方法: bash /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf & 另外,也可以将MySQL配置为系统服务,以便更方便地管理: bash cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld start 5.设置MySQL root密码: bash /usr/local/mysql/bin/mysqladmin -u root password admin 三、主从复制配置 在完成MySQL的安装和初始化后,接下来进行主从复制的配置

    假设主服务器IP为192.168.1.1,从服务器IP为192.168.1.2

     1. 主服务器配置 (1)修改主服务器的`my.cnf`文件,在`【mysqld】`部分添加以下内容: ini 【mysqld】 log-bin=/usr/local/mysql/data/mysql-bin server-id=1 replicate-ignore-db=mysql - log-bin:启用二进制日志功能,并指定二进制日志文件的存储路径

     - server-id:设置服务器的唯一ID,主从服务器的ID必须不同

     - replicate-ignore-db:指定不需要同步的数据库,这里忽略`mysql`系统数据库

     (2)重启MySQL服务: bash service mysqld restart (3)创建用于同步的用户并授予权限: sql mysql> GRANT REPLICATION SLAVE ON- . TO replication@% IDENTIFIED BY 123456; mysql> FLUSH PRIVILEGES; (4)查看主服务器的状态,记录二进制日志文件名和位置: sql mysql> SHOW MASTER STATUS; 2. 从服务器配置 (1)修改从服务器的`my.cnf`文件,在`【mysqld】`部分添加以下内容: ini 【mysqld】 log-bin=/usr/local/mysql/data/mysql-slave-bin server-id=2 relay-log=/usr/local/mysql/data/mysql-relay-bin log_slave_updates=1 read_only=1 - log-bin:在从服务器上启用二进制日志(可选,但有助于将来可能的多级复制)

     server-id:设置从服务器的唯一ID

     relay-log:指定中继日志文件的存储路径

     - log_slave_updates:将从服务器的复制事件写入其自己的二进制日志(可选,但有助于多级复制)

     - read_only:设置从服务器为只读模式,以防止数据被意外修改

     (2)重启MySQL服务: bash service mysqld restart (3)在从服务器上配置复制参数,指向主服务器: sql mysql> CHANGE MASTER TO MASTER_HOST=192.168.1.1, MASTER_USER=replication, MASTER_PASSWORD=123456, MASTER_LOG_FILE=mysql-bin.000001,-- 这里填写主服务器SHOW MASTER STATUS显示的日志文件名 MASTER_LOG_POS=123456;-- 这里填写主服务器SHOW MASTER STATUS显示的位置 (4)启动从服务器的复制进程: sql mysql> START SLAVE; (5)检查从服务器的复制状态: sql mysql> SHOW SLAVE STATUSG; 确保`Slave_IO_Running`和`Slave_SQL_Running`的状态都为`Yes`,表示复制进程正在正常运行

     四、测试主从复制 在主服务器上创建一个新的数据库或表,然后在从服务器上检查是否成功同步

    如果一切正常,你应该能够在从服务器上看到与主服务器相同的数据库和表结构

     五、注意事项 1.防火墙设置:确保两台服务器之间的3306端口是开放的,以便MySQL服务能够

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