VPS上如何安装多个不同版本的MySQL?_详细步骤与常见问题解决方案

如何在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

发表评论

评论列表