一键Yum安装,打造多MySQL数据库环境
yum安装多个mysql数据库

首页 2025-07-02 07:28:51



在Linux系统上使用YUM安装多个MySQL数据库实例:深度解析与实践指南 在当今的数据驱动时代,MySQL作为开源关系型数据库管理系统(RDBMS)的佼佼者,以其高性能、稳定性和广泛的社区支持,成为了众多企业和开发者首选的数据库解决方案

    然而,在某些场景下,比如测试环境、多租户架构或是需要隔离不同应用数据的场合,我们可能需要在同一台服务器上运行多个MySQL实例

    这不仅能够有效利用硬件资源,还能提供更高的数据隔离性和灵活性

    本文将深入探讨如何在Linux系统上,特别是基于Red Hat系列发行版(如CentOS、Fedora等),利用YUM包管理器安装并配置多个MySQL数据库实例

     一、准备工作 在开始之前,请确保您的系统满足以下基本要求: 1.操作系统:Red Hat Enterprise Linux(RHEL)、CentOS、Fedora或其他基于RPM的Linux发行版

     2.用户权限:拥有root权限或能够使用sudo执行管理员命令

     3.网络连接:能够访问YUM仓库,以便下载MySQL软件包

     4.磁盘空间:足够的磁盘空间用于存储多个MySQL实例的数据文件和日志文件

     二、安装第一个MySQL实例 首先,我们需要安装MySQL Server

    虽然理论上可以通过手动编译安装多个版本或实例,但使用YUM可以大大简化这一过程,并确保依赖关系得到正确处理

     1.更新系统软件包: bash sudo yum update -y 2.添加MySQL Yum Repository: 由于默认的YUM仓库中可能不包含最新版本的MySQL,我们通常需要添加官方的MySQL Yum Repository

     bash sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm 注意:链接中的版本号可能随时间变化,请访问MySQL官方网站获取最新链接

     3.禁用默认MySQL模块(可选): 如果系统中存在多个MySQL模块,为避免冲突,可以禁用默认的MySQL模块

     bash sudo yum-config-manager --disable mysql80-community sudo yum-config-manager --enable mysql80-community-dmr 如果需要使用开发预览版 4.安装MySQL Server: bash sudo yum install mysql-community-server -y 5.启动并设置MySQL服务开机自启: bash sudo systemctl start mysqld sudo systemctl enable mysqld 6.获取临时root密码: MySQL安装完成后,会在`/var/log/mysqld.log`文件中生成一个临时root密码

     bash sudo grep temporary password /var/log/mysqld.log 7.安全配置MySQL: 使用临时密码登录MySQL,并执行`mysql_secure_installation`脚本进行安全配置,包括设置新root密码、删除匿名用户、禁止远程root登录等

     三、安装并配置第二个MySQL实例 为了在同一台服务器上安装第二个MySQL实例,我们需要创建一个全新的数据目录、配置文件和服务单元文件,以避免与第一个实例冲突

     1.创建新数据目录和配置文件: bash sudo mkdir -p /var/lib/mysql2 /etc/my.cnf.d/mysql2 2.复制并修改配置文件: 从默认配置文件中复制一份到新位置,并根据需要进行修改,特别是`datadir`、`socket`、`port`等关键参数

     bash sudo cp /etc/my.cnf /etc/my.cnf.d/mysql2/my.cnf sudo sed -i s/^datadir=./datadir = /var/lib/mysql2/ /etc/my.cnf.d/mysql2/my.cnf sudo sed -i s/^socket=./socket = /var/lib/mysql2/mysql.sock/ /etc/my.cnf.d/mysql2/my.cnf sudo sed -i s/^port=./port = 3307/ /etc/my.cnf.d/mysql2/my.cnf 3.准备数据目录: 使用`mysql_install_db`命令初始化新数据目录

    注意,MySQL5.7及以上版本使用`mysqld --initialize`

     bash sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql2 4.创建服务单元文件: 在`/etc/systemd/system/`目录下创建一个新的服务单元文件,如`mysql2.service`

     bash sudo nano /etc/systemd/system/mysql2.service 内容示例: ini 【Unit】 Description=MySQL Server2 After=network.target After=syslog.target 【Service】 User=mysql Group=mysql ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my.cnf.d/mysql2/my.cnf PIDFile=/var/run/mysqld/mysqld2.pid LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 5.启动并设置服务开机自启: bash sudo systemctl daemon-reload sudo systemctl start mysql2 sudo systemctl enable mysql2 6.安全配置第二个MySQL实例: 类似地,通过新实例的socket文件登录MySQL(可能需要指定`--socket`参数),并执行安全配置

     四、管理多个MySQL实例 管理多个MySQL实例时,需要注意以下几点: -端口冲突:确保每个实例使用不同的端口

     -数据目录隔离:每个实例有独立的数据目录

     -配置文件区分:通过不同的配置文件管理每个实例的设置

     -服务管理:使用systemd服

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