适用于 Ubuntu 20.04 / 22.04 无网络环境部署 MySQL。
建议初学者先按手动方式部署一遍理解原理,再使用自动化脚本完成批量部署。
📁 一、准备工作
✅ 1. 虚拟机环境
- 系统:Ubuntu 22.04(或兼容版本)
- 环境:无网络或受限网络
- 工具:支持 ISO 挂载(可选)
✅ 2. 在联网主机下载依赖包
# 在联网环境中操作
mkdir ~/mysql_offline && cd ~/mysql_offline
# 下载所需的 deb 包(建议使用 apt-download)
sudo apt install -y apt-utils
# 下载 mysql-server 及其依赖(以当前系统为准)
apt download mysql-server mysql-client libaio1
✅ 3. 打包为 ISO 文件
sudo apt install genisoimage -y
genisoimage -o mysql_offline.iso ~/mysql_offline
📦 二、手动部署过程(推荐先动手操作)
🔧 1. 将 ISO 文件挂载到目标虚拟机
sudo mkdir -p /mnt/mysqliso
sudo mount -o loop /path/to/mysql_offline.iso /mnt/mysqliso
cd /mnt/mysqliso
注意:
/path/to/
替换为你实际的 ISO 路径。
💿 2. 安装 MySQL
sudo dpkg -i *.deb
sudo apt --fix-broken install -y
如果提示缺失依赖,根据提示
apt download xxx
并补齐即可。
▶️ 3. 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
🔐 4. 初始化安全配置(建议设置 root 密码)
sudo mysql_secure_installation
推荐选择「Y」来启用密码策略,初学可以设置简单密码如
123456
。
🌍 5. 配置远程访问(可选)
sudo mysql -u root -p
# 输入刚才设置的密码,进入后执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
🔓 6. 开放防火墙端口(如有)
sudo ufw allow 3306
sudo ufw reload
🤖 三、一键部署脚本(推荐在熟悉手动过程后使用)
mysql_offline_deploy.sh
#!/bin/bash
echo "🔧 挂载 ISO..."
sudo mkdir -p /mnt/mysqliso
sudo mount -o loop /path/to/mysql_offline.iso /mnt/mysqliso || exit 1
echo "📦 安装 MySQL..."
cd /mnt/mysqliso || exit 1
sudo dpkg -i *.deb
sudo apt --fix-broken install -y
echo "▶️ 启动服务..."
sudo systemctl enable mysql
sudo systemctl start mysql
echo "🔐 设置 root 密码并开启远程访问..."
sudo mysql <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
echo "🌍 开放端口..."
sudo ufw allow 3306
sudo ufw reload
echo "✅ MySQL 离线部署完成!"
🧪 四、使用说明
-
确保 ISO 文件已经上传并存在本机路径;
-
替换脚本中的
/path/to/mysql_offline.iso
为实际路径; -
添加可执行权限:
chmod +x mysql_offline_deploy.sh
-
执行部署:
./mysql_offline_deploy.sh
📎 五、补充建议
-
若希望 ISO 中包含更多依赖,请使用联网机器完整安装 mysql-server 后,使用如下命令列出所有安装包依赖:
apt-cache depends mysql-server
-
建议封装
.deb
包为.tar.gz
上传后解压也是一种选择(适合无 ISO 工具的服务器)。