CentOS系统下双MySQL安装指南
centos 安装2个mysql

首页 2025-07-24 04:38:05



在 CentOS 上高效安装与配置双 MySQL 实例:全面指南 在当今的数据驱动时代,数据库管理系统(DBMS)作为企业数据处理的核心组件,其稳定性和性能至关重要

    MySQL,作为一款开源的关系型数据库管理系统,凭借其高可用性、灵活性和广泛的社区支持,成为了众多企业的首选

    在某些特定场景下,如读写分离、负载均衡或测试与生产环境隔离等,我们可能需要在同一台服务器上安装并运行多个MySQL实例

    本文将详细探讨如何在CentOS操作系统上高效安装与配置两个MySQL实例,确保系统的稳定性与高效性

     一、前期准备 1. 系统环境检查 首先,确保你的CentOS系统版本至少是7或更高,因为较新的版本提供了更好的性能和安全更新

    通过以下命令检查系统版本: bash cat /etc/centos-release 2. 更新系统软件包 在安装任何新软件之前,更新系统软件包至最新版本是一个好习惯,这有助于减少潜在的兼容性问题: bash sudo yum update -y 3. 安装必要的依赖 MySQL的安装依赖于一些基础库和工具,如`wget`、`vim`(用于文本编辑)等,可按需安装: bash sudo yum install -y wget vim 二、安装第一个MySQL实例 1. 添加MySQL Yum存储库 MySQL官方提供了Yum存储库,便于我们安装和管理MySQL软件

    首先,下载并添加MySQL Yum存储库: bash sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm 2. 安装MySQL服务器 使用Yum安装MySQL服务器软件: bash sudo yum install -y mysql-community-server 3. 启动MySQL服务并设置开机自启 安装完成后,启动MySQL服务并设置为开机自启: bash sudo systemctl start mysqld sudo systemctl enable mysqld 4. 获取临时root密码 MySQL安装后会自动生成一个临时root密码,可以在`/var/log/mysqld.log`文件中找到: bash sudo grep temporary password /var/log/mysqld.log 5. 安全配置MySQL 使用找到的临时密码登录MySQL,并执行安全配置脚本,设置新密码、移除匿名用户、禁用远程root登录等: bash mysql_secure_installation 三、安装第二个MySQL实例 在同一台服务器上安装第二个MySQL实例需要一些额外的步骤,以避免端口冲突、数据目录重叠等问题

     1. 创建新的MySQL用户和组 为了隔离两个MySQL实例的进程和资源,创建新的用户和组: bash sudo groupadd mysql2 sudo useradd -r -g mysql2 -s /bin/false mysql2 2. 下载并解压MySQL二进制包 从MySQL官方网站下载MySQL的二进制安装包,并解压到指定目录(例如`/usr/local/`): bash cd /usr/local sudo wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz sudo tar -xvf mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz sudo ln -s mysql-8.0.xx-linux-glibc2.12-x86_64 mysql2 3. 配置第二个MySQL实例 为第二个MySQL实例创建一个独立的数据目录和配置文件: bash sudo mkdir -p /var/lib/mysql2 sudo chown -R mysql2:mysql2 /var/lib/mysql2 复制默认的配置文件模板并进行修改,主要修改以下内容: -`【mysqld】`部分:指定`datadir`、`port`(如3307)、`socket`等参数

     -`【client】`部分:修改`socket`路径以匹配实例配置

     示例配置文件(`/etc/my2.cnf`): ini 【mysqld】 datadir=/var/lib/mysql2 port=3307 socket=/var/lib/mysql2/mysql2.sock user=mysql2 其他配置... 【client】 socket=/var/lib/mysql2/mysql2.sock 其他配置... 4.初始化数据库 使用`mysqld --initialize`命令初始化第二个MySQL实例的数据目录: bash sudo /usr/local/mysql2/bin/mysqld --initialize --user=mysql2 --datadir=/var/lib/mysql2 5. 设置MySQL服务脚本 为第二个MySQL实例创建一个systemd服务文件,例如`/etc/systemd/system/mysqld2.service`: ini 【Unit】 Description=MySQL Server2 After=network.target After=syslog.target 【Service】 User=mysql2 Group=mysql2 ExecStart=/usr/local/mysql2/bin/mysqld --defaults-file=/etc/my2.cnf PIDFile=/var/run/mysqld2/mysqld.pid LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 创建PID文件目录并设置权限: bash sudo mkdir -p /var/run/mysqld2 sudo chown mysql2:mysql2 /var/run/mysqld2 重新加载systemd配置并启动服务: bash sudo systemctl daemon-reload sudo systemctl start mysqld2 sudo systemctl enable mysqld2 6. 安全配置第二个MySQL实例 类似地,为第二个MySQL实例设置root密码并进行安全配置

    由于端口不同,你可以直接通过命令行指定端口连接: bash /usr/local/mysql2/bin/mysql -u root -p -S /var/lib/mysql2/mysql2.sock -P3

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