Linux环境下MySQL安装与主从复制搭建全攻略
linux下mysql安装以及主从搭建

首页 2025-06-28 01:26:06



Linux下MySQL安装及主从搭建详解 在当前的数字化时代,数据库作为数据存储和管理的核心组件,其稳定性和性能至关重要

    MySQL作为一款开源的关系型数据库管理系统(RDBMS),凭借其高性能、可靠性和易用性,在各行各业中得到了广泛应用

    特别是在Linux环境下,MySQL的安装与配置更是许多系统管理员和开发者的必备技能

    本文将详细介绍如何在Linux下安装MySQL以及搭建主从复制环境,确保数据的高可用性和负载均衡

     一、Linux下MySQL的安装 1. 环境准备 在开始安装之前,请确保你的Linux服务器(无论是云服务器还是虚拟机)已经准备好,并且网络连接正常

    本文将以CentOS7为例进行说明,但大部分步骤也适用于其他Linux发行版

     2.卸载旧版MySQL或MariaDB 在安装新的MySQL之前,如果系统中已经存在旧版的MySQL或MariaDB,建议先将其卸载,以避免潜在的冲突

    可以使用以下命令: bash rpm -qa | grep mysql rpm -e --nodeps rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs 3. 安装MySQL 方法一:通过YUM Repository安装 这是最简单且推荐的方法,因为它会自动处理依赖关系

     bash wget -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y --nogpgcheck install mysql-community-server 方法二:通过RPM包手动安装 如果你需要特定版本的MySQL,或者YUM源不可用,可以选择手动下载RPM包并安装

     bash 下载MySQL RPM包集合(以8.0.28版本为例) wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C /path/to/mysql 按照依赖顺序安装RPM包 rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm 4.初始化MySQL 在安装完成后,需要对MySQL进行初始化,以生成必要的系统表和配置文件

     bash mysqld --initialize --console 初始化过程中,系统会生成一个临时root密码,请务必记录下来

     5. 启动MySQL服务并设置开机自启动 bash systemctl start mysqld.service systemctl enable mysqld.service 6. 修改root密码及配置 使用临时密码登录MySQL后,建议立即修改root密码,并根据需要进行其他配置

     bash mysql -u root -p 修改密码 ALTER USER root@localhost IDENTIFIED BY new-password; 关闭密码复杂验证(可选) SET GLOBAL validate_password_policy=0; SET GLOBAL validate_password_length=1; 二、MySQL主从复制搭建 主从复制是MySQL提供的一种高可用性和负载均衡解决方案,通过将主数据库(Master)的DDL和DML操作通过二进制日志(Binary Log)传输到从数据库(Slave)并在其上重新执行,从而实现数据同步

     1. 环境准备 确保主从服务器已经安装好MySQL,并且网络连接正常

    同时,需要开放MySQL的默认端口3306(如果防火墙启用)

     bash 开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload 2. 主服务器配置 修改MySQL配置文件 编辑`/etc/my.cnf`文件,添加或修改以下配置: ini 【mysqld】 server-id=1 log-bin=mysql-bin binlog-format=MIXED log-slave-updates=true read-only=0 重启MySQL服务 bash systemctl restart mysqld 为从服务器授权 在主服务器上创建一个用于复制的用户,并授予必要的权限

     sql CREATE USER replica_user@% IDENTIFIED WITH mysql_native_password BY replica_password; GRANT REPLICATION SLAVE ON. TO replica_user@%; FLUSH PRIVILEGES; 查看二进制日志坐标 记录当前二进制日志文件名和位置,以便在从服务器上配置复制

     sql SHOW MASTER STATUS; 3. 从服务器配置 修改MySQL配置文件 编辑`/etc/my.cnf`文件,添加或修改以下配置: ini 【mysqld】 server-id=2 read-only=1 注意:`server-id`必须唯一,且与主服务器不同

     重启MySQL服务 bash systemctl restart mysqld 配置主从同步 在从服务器上执行以下命令,配置复制源

     sql CHANGE MASTER TO MASTER_HOST=master-server-ip, MASTER_USER=replica_user, MASTER_PASSWORD=replica_password, MASTER_LOG_FILE=mysql-bin.xxxxxx,--替换为SHOW MASTER STATUS输出的文件名 MASTER_LOG_POS=xxxxxx; --替换为SHOW MASTER STATUS输出的位置 启动复制进程 sql START SLAVE; 查看复制状态 使用以下命令检查复制状态,确保`Slave_IO_Running`和`Slave_SQL_Running`都为`Yes`

     sql SHOW SLAVE STATUSG; 4. 测试主从复制 在主服务器上创建一个测试数据库和表,并插入一些数据

    然后,在从服务器上检查是否成功同步了这些数据和结构

     sql -- 在主服务器上执行 CREATE DATABASE test_db; USE test_db; CREATE TABLE test_table(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100)); INSERT INTO test_table(name) VALUES(Test Data); -- 在从服务器上执行 SHOW DATABASES; USE test_db; SELECTFROM test_table; 如果在从服务器上能够看到与主服务器相同的数据,则说明主从复制搭建成功

     三、总结 本文详细介绍了在Linux环境下安装MySQL以及搭建主从复制环境的步骤

    通过遵循这些步骤,你可以轻松地实现MySQL数据库的高可用性和负载均衡

    无论是对于初学者还是有经验的系统管理员来说,掌握这些技能都是非常重要的

    希望本文能对你有所帮助!

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