在宝塔面板中安装两个 MySQL 实例(即双 MySQL),通常是为了满足不同项目对不同版本 MySQL 的需求,或者为了隔离数据库服务。以下是详细的步骤说明:
🧩 一、准备前提
- 服务器为 Linux 系统(如 CentOS、Ubuntu)
- 已安装 宝塔面板
- 了解基本的 Linux 操作命令
- 确保服务器资源足够运行多个 MySQL 实例(CPU、内存、磁盘)
🛠️ 二、安装第一个 MySQL(通过宝塔)
- 登录宝塔面板
- 进入【软件商店】
- 安装一个版本的 MySQL(例如:MySQL 5.6 或 8.0)
✅ 此时你已经有一个 MySQL 实例运行在默认端口
3306
🔁 三、手动安装第二个 MySQL 实例
✅ 方法一:使用宝塔安装另一个版本的 MySQL(不推荐)
宝塔默认只允许安装一个 MySQL,所以此方法不可行。
✅ 方法二:手动编译或使用二进制包安装第二个 MySQL(推荐)
步骤如下:
1. 下载另一个版本的 MySQL 二进制包
cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql2
2. 创建数据目录和用户
mkdir -p /www/server/data2
groupadd mysql2
useradd -r -g mysql2 -d /usr/local/mysql2 -s /bin/false mysql2
chown -R mysql2:mysql2 /usr/local/mysql2
chown -R mysql2:mysql2 /www/server/data2
3. 初始化数据库
/usr/local/mysql2/bin/mysqld
--initialize-insecure
--user=mysql2
--basedir=/usr/local/mysql2
--datadir=/www/server/data2
4. 配置 my.cnf 文件(新实例)
新建配置文件 /etc/my2.cnf:
[mysqld]
port=3307
socket=/tmp/mysql2.sock
basedir=/usr/local/mysql2
datadir=/www/server/data2
log-error=/www/server/data2/error.log
pid-file=/www/server/data2/mysql.pid
server-id=2
5. 设置开机启动脚本
复制启动脚本:
cp /usr/local/mysql2/support-files/mysql.server /etc/init.d/mysql2
编辑 /etc/init.d/mysql2,修改以下内容:
basedir=/usr/local/mysql2
datadir=/www/server/data2
conf=/etc/my2.cnf
添加到开机启动:
chmod +x /etc/init.d/mysql2
chkconfig --add mysql2
chkconfig mysql2 on
6. 启动第二个 MySQL 实例
service mysql2 start
查看是否运行:
ps aux | grep mysql2
netstat -tuln | grep 3307
7. 设置 root 密码(可选)
/usr/local/mysql2/bin/mysqladmin -u root password 'yourpassword' -S /tmp/mysql2.sock
🌐 四、测试连接第二个 MySQL
你可以用 Navicat、DBeaver 或 PHP 连接测试:
- 主机:你的服务器 IP
- 端口:3307
- 用户名:root
- 密码:你设置的密码
- Socket:/tmp/mysql2.sock
🧪 五、如何区分两个 MySQL 实例?
| 实例 | 宝塔安装 | 手动安装 |
|---|---|---|
| 版本 | 如 8.0 | 如 5.7 |
| 端口 | 3306 | 3307 |
| 数据目录 | 默认路径 | 自定义路径如 /www/server/data2 |
| 控制方式 | 宝塔界面控制 | 使用 service 命令 |
💡 六、注意事项
- 避免端口冲突:确保两个 MySQL 使用不同的端口(如 3306 和 3307)
- 防火墙开放端口:如果你需要远程访问,请开放对应的端口
- PHP 连接问题:
- 如果你是用 PHP 连接非默认端口的 MySQL,记得在代码中指定端口:
new mysqli("localhost", "user", "pass", "dbname", 3307);
- 如果你是用 PHP 连接非默认端口的 MySQL,记得在代码中指定端口:
- 不要混淆 socket 文件:不同实例的 sock 文件不同,注意使用
-S参数连接
📦 七、其他方案(可选)
- 使用 Docker 安装第二个 MySQL 实例(更灵活但需熟悉 Docker)
- 使用 LNMP.org 一键包安装多个 MySQL(适合有经验用户)
✅ 总结
| 目标 | 方法 |
|---|---|
| 安装第一个 MySQL | 宝塔软件商店直接安装 |
| 安装第二个 MySQL | 手动下载二进制包并配置多实例 |
| 区分两个 MySQL | 不同端口、不同配置文件、不同数据目录 |
| 管理第二个 MySQL | 使用 service mysql2 start/stop/restart |
如果你希望我帮你写一个完整的自动化脚本或具体某个版本的安装流程,也可以告诉我你的系统版本和想要的 MySQL 版本,我可以进一步定制帮助你!
是否需要我提供一个完整的手动安装脚本?
CLOUD技术博