如何在VPS服务器上安装多个不同版本的MySQL数据库?
| 安装方法 |
适用场景 |
复杂度 |
资源占用 |
| 多实例部署 |
单服务器多项目隔离 |
中等 |
较低 |
| Docker容器化 |
快速部署测试环境 |
简单 |
中等 |
| 源码编译安装 |
定制化需求 |
复杂 |
灵活控制 |
| 不同端口配置 |
简单隔离需求 |
简单 |
最低 |
VPS上安装多个不同版本MySQL的完整指南
主要安装方法概览
| 方法类型 |
实施步骤 |
适用场景 |
资源要求 |
| 多实例配置 |
配置不同数据目录和端口 |
生产环境隔离 |
中等内存 |
| Docker容器 |
使用不同镜像版本 |
开发测试环境 |
较低配置 |
| 源码编译 |
指定不同安装路径 |
定制化需求 |
较高配置 |
详细操作步骤
步骤一:环境准备与依赖安装
操作说明:更新系统并安装必要的依赖包,为多个MySQL版本安装做准备。
使用工具提示:使用SSH连接到VPS,确保有root或sudo权限。
# 更新系统包管理器
sudo apt update && sudo apt upgrade -y
安装编译工具和依赖
sudo apt install build-essential cmake libncurses5-dev libssl-dev pkg-config -y
创建专用用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
步骤二:下载不同版本MySQL
操作说明:从MySQL官方网站下载需要的不同版本源码包。
使用工具提示:使用wget命令下载,确保网络连接稳定。
# 创建下载目录
mkdir -p /opt/mysql-sources
cd /opt/mysql-sources
下载MySQL 5.7和8.0版本
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36.tar.gz
解压源码包
tar -xzf mysql-5.7.44.tar.gz
tar -xzf mysql-8.0.36.tar.gz
步骤三:编译安装MySQL 5.7
操作说明:编译安装第一个MySQL版本,指定独立的安装目录。
使用工具提示:编译过程可能需要较长时间,建议在配置较高的VPS上操作。
cd mysql-5.7.44
创建编译目录
mkdir build && cd build
配置编译选项
cmake .. \
-DCMAKEINSTALLPREFIX=/usr/local/mysql57 \
-DMYSQLDATADIR=/var/lib/mysql57 \
-DMYSQLTCPPORT=3307 \
-DMYSQLUNIXADDR=/tmp/mysql57.sock \
-DWITHINNOBASESTORAGEENGINE=1 \
-DWITHSSL=system
编译并安装
make -j$(nproc)
sudo make install
步骤四:编译安装MySQL 8.0
操作说明:编译安装第二个MySQL版本,使用不同的配置参数。
使用工具提示:确保与第一个版本的端口和路径不冲突。
cd /opt/mysql-sources/mysql-8.0.36
mkdir build && cd build
cmake .. \
-DCMAKEINSTALLPREFIX=/usr/local/mysql80 \
-DMYSQLDATADIR=/var/lib/mysql80 \
-DMYSQLTCPPORT=3308 \
-DMYSQLUNIXADDR=/tmp/mysql80.sock \
-DWITHINNOBASESTORAGEENGINE=1 \
-DDEFAULTCHARSET=utf8mb4 \
-DDEFAULTCOLLATION=utf8mb4unicode_ci
make -j$(nproc)
sudo make install
步骤五:初始化数据目录
操作说明:为每个MySQL版本初始化独立的数据目录。
使用工具提示:确保数据目录权限正确,避免启动失败。
# 创建数据目录
sudo mkdir -p /var/lib/mysql57 /var/lib/mysql80
sudo chown -R mysql:mysql /var/lib/mysql57 /var/lib/mysql80
初始化MySQL 5.7
sudo /usr/local/mysql57/bin/mysqld --initialize-insecure \
--user=mysql --basedir=/usr/local/mysql57 \
--datadir=/var/lib/mysql57
初始化MySQL 8.0
sudo /usr/local/mysql80/bin/mysqld --initialize-insecure \
--user=mysql --basedir=/usr/local/mysql80 \
--datadir=/var/lib/mysql80
步骤六:配置系统服务
操作说明:为每个MySQL实例创建独立的systemd服务文件。
使用工具提示:使用systemctl管理服务,确保开机自启动。
```bash
创建MySQL 5.7服务文件
sudo tee /etc/systemd/system/mysql57.service > /dev/null /dev/null
发表评论