本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。
在某些生产环境中,服务器无法连接互联网,需要采用离线方式安装MySQL。本文详细介绍在Ubuntu 24.04 LTS系统上离线安装MySQL 8.0.44的完整步骤,包括下载安装包、安装依赖项、按顺序安装MySQL组件以及后续配置,帮助运维人员在离线环境下成功部署MySQL数据库。
离线安装概述
离线安装MySQL适用于以下场景:
- 内网环境或安全要求较高的生产环境
- 无法访问外网或需要严格网络隔离的服务器
- 需要离线部署数据库服务的场景
与在线安装相比,离线安装需要手动下载MySQL安装包和依赖项,并按照正确的顺序进行安装,但能够保证在离线环境下正常运行。
一、下载离线安装包
1. 下载MySQL安装包
从MySQL官方网站下载适用于Ubuntu 24.04的MySQL 8.0.44离线安装包。
下载地址:
- MySQL官方下载页面:https://dev.mysql.com/downloads/mysql/
- 选择"Linux - Generic"版本,下载Ubuntu 24.04对应的安装包
安装包名称:
mysql-server_8.0.44-1ubuntu24.04_amd64.deb-bundle.tar注意事项:
- 确保选择与操作系统架构匹配的版本(amd64或arm64)
- 建议下载稳定版本,避免使用测试版本
- 下载完整的deb-bundle包,包含所有必要的组件
2. 解压安装包
下载完成后,解压该tar包:
tar -xf mysql-server_8.0.44-1ubuntu24.04_amd64.deb-bundle.tar解压后,您会得到以下文件:
mysql-common_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-client-plugins_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-client-core_8.0.44-1ubuntu24.04_amd64.deb
libmysqlclient21_8.0.44-1ubuntu24.04_amd64.deb
libmysqlclient-dev_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-server-core_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-client_8.0.44-1ubuntu24.04_amd64.deb
mysql-client_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-server_8.0.44-1ubuntu24.04_amd64.deb
mysql-server_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-server-debug_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-test_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-test-debug_8.0.44-1ubuntu24.04_amd64.deb
mysql-testsuite_8.0.44-1ubuntu24.04_amd64.deb说明:
- 基础组件(mysql-common、client-plugins等)是必需的
- server-debug、test等组件为可选,可根据实际需求选择是否安装
二、安装依赖项
在安装MySQL之前,需要先安装必要的依赖包。MySQL 8.0需要以下两个依赖包:
1. 下载依赖包
libaio1t64(注意:Ubuntu 24.04使用的是libaio1t64,不是libaio1):
- 下载链接:https://pkgs.org/download/libaio1t64
- 或从Ubuntu官方仓库下载:
libaio1t64_0.3.113-6build1.1_amd64.deb
libmecab2:
- 下载链接:https://pkgs.org/download/libmecab2
- 或从Ubuntu官方仓库下载:
libmecab2_0.996-14ubuntu4_amd64.deb
注意事项:
- Ubuntu 24.04使用libaio1t64(64位版本),而不是libaio1
- 确保下载与系统架构匹配的依赖包版本
- 如果已联网,也可以使用
apt download命令下载依赖包
2. 安装依赖包
将依赖包上传到服务器后,使用以下命令安装:
sudo dpkg -i libaio1t64_0.3.113-6build1.1_amd64.deb
sudo dpkg -i libmecab2_0.996-14ubuntu4_amd64.deb验证依赖包安装:
dpkg -l | grep libaio1t64
dpkg -l | grep libmecab2如果命令显示已安装的包信息,说明依赖包安装成功。
三、按顺序安装MySQL组件
MySQL的各个组件之间存在依赖关系,必须按照正确的顺序进行安装。按照以下顺序逐个安装:
1. 安装顺序
按照以下顺序逐个安装MySQL组件:
# 1. 安装公共组件
sudo dpkg -i mysql-common_8.0.44-1ubuntu24.04_amd64.deb
# 2. 安装客户端插件
sudo dpkg -i mysql-community-client-plugins_8.0.44-1ubuntu24.04_amd64.deb
# 3. 安装客户端核心组件
sudo dpkg -i mysql-community-client-core_8.0.44-1ubuntu24.04_amd64.deb
# 4. 安装MySQL客户端库
sudo dpkg -i libmysqlclient21_8.0.44-1ubuntu24.04_amd64.deb
# 5. 安装MySQL开发库(可选,如果需要开发,使用8.0.44版本)
sudo dpkg -i libmysqlclient-dev_8.0.44-1ubuntu24.04_amd64.deb
# 6. 安装服务器核心组件
sudo dpkg -i mysql-community-server-core_8.0.44-1ubuntu24.04_amd64.deb
# 7. 安装MySQL社区客户端
sudo dpkg -i mysql-community-client_8.0.44-1ubuntu24.04_amd64.deb
# 8. 安装MySQL客户端
sudo dpkg -i mysql-client_8.0.44-1ubuntu24.04_amd64.deb
# 9. 安装MySQL社区服务器
sudo dpkg -i mysql-community-server_8.0.44-1ubuntu24.04_amd64.deb
# 10. 安装MySQL服务器
sudo dpkg -i mysql-server_8.0.44-1ubuntu24.04_amd64.deb可选组件(根据需要安装):
# 服务器调试版本(可选)
sudo dpkg -i mysql-community-server-debug_8.0.44-1ubuntu24.04_amd64.deb
# 测试套件(可选)
sudo dpkg -i mysql-community-test_8.0.44-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-test-debug_8.0.44-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-testsuite_8.0.44-1ubuntu24.04_amd64.deb注意事项:
- 如果解压后的文件中有
libmysqlclient-dev_8.0.36-2ubuntu3_amd64.deb(旧版本),请使用libmysqlclient-dev_8.0.44-1ubuntu24.04_amd64.deb(新版本),避免版本冲突 - 必须按照上述顺序安装,以确保依赖关系正确
2. 处理依赖问题
如果在安装过程中遇到依赖问题,可以使用以下命令修复:
sudo apt-get install -f这个命令会自动安装缺失的依赖项(如果有网络连接)或提示需要手动解决的依赖问题。
3. 批量安装方式(可选)
如果您确认所有依赖都已满足,也可以使用通配符批量安装:
sudo dpkg -i mysql-*.deb但建议还是按照顺序逐个安装,以便更好地跟踪安装过程和排查问题。
四、配置MySQL
1. 初始化MySQL服务
安装完成后,MySQL服务应该已经自动启动。检查服务状态:
sudo systemctl status mysql如果服务未启动,手动启动:
sudo systemctl start mysql
sudo systemctl enable mysql2. 获取初始root密码
MySQL 8.0在首次安装时会生成一个临时root密码。查看初始密码:
sudo grep 'temporary password' /var/log/mysqld.log或者:
sudo cat /var/log/mysql/error.log | grep "temporary password"3. 登录MySQL并修改密码
使用获取的临时密码登录:
mysql -u root -p登录后,立即修改root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!';
FLUSH PRIVILEGES;密码策略要求:
- MySQL 8.0默认要求密码至少8个字符
- 必须包含大写字母、小写字母、数字和特殊字符
如果需要使用简单密码(不推荐生产环境),可以先修改密码策略:
-- 查看密码策略
SHOW VARIABLES LIKE 'validate_password%';
-- 降低密码复杂度要求(仅用于测试环境)
SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=4;4. 创建新用户(可选)
创建新用户用于日常操作:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;允许远程连接(生产环境需要配置防火墙):
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;5. 验证安装
验证MySQL安装是否成功:
# 查看MySQL版本
mysql --version
# 查看MySQL服务状态
sudo systemctl status mysql
# 测试连接
mysql -u root -p -e "SELECT VERSION();"五、常见问题排查
1. 依赖问题
如果安装过程中提示缺少依赖:
# 查看缺少的依赖
sudo apt-get install -f
# 如果无法自动安装,需要手动下载缺失的依赖包2. 服务启动失败
如果MySQL服务启动失败:
# 查看错误日志
sudo tail -f /var/log/mysql/error.log
# 检查配置文件
sudo mysql --print-defaults
# 检查端口占用
sudo netstat -tlnp | grep 33063. 权限问题
如果遇到权限问题:
# 检查MySQL数据目录权限
sudo ls -la /var/lib/mysql
# 修复权限(谨慎使用)
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql4. 端口冲突
如果3306端口被占用:
# 查看占用端口的进程
sudo lsof -i :3306
# 或者修改MySQL端口(编辑配置文件)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 修改 port = 3306 为其他端口六、后续配置建议
1. 配置MySQL参数
编辑MySQL配置文件以优化性能:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf常用配置项:
[mysqld]
# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 连接数设置
max_connections=200
max_connect_errors=10
# 缓冲池大小(根据内存调整)
innodb_buffer_pool_size=1G
# 日志设置
log-error=/var/log/mysql/error.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=2修改配置后重启MySQL:
sudo systemctl restart mysql2. 配置防火墙(如需要)
如果需要允许远程访问:
# UFW防火墙
sudo ufw allow 3306/tcp
# 或iptables
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT3. 配置备份策略
建议配置定期备份:
# 创建备份脚本
sudo vi /usr/local/bin/mysql-backup.sh#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u root -p'password' --all-databases > $BACKUP_DIR/mysql_backup_$DATE.sql
# 保留最近7天的备份
find $BACKUP_DIR -name "mysql_backup_*.sql" -mtime +7 -delete# 添加执行权限
sudo chmod +x /usr/local/bin/mysql-backup.sh
# 添加到crontab(每天凌晨2点备份)
sudo crontab -e
# 添加:0 2 * * * /usr/local/bin/mysql-backup.sh总结
通过以上步骤,可以在Ubuntu 24.04 LTS系统上成功离线安装MySQL 8.0.44。关键步骤包括:
- 下载安装包:从MySQL官方下载适合Ubuntu 24.04的安装包
- 安装依赖项:确保libaio1t64和libmecab2已安装(注意Ubuntu 24.04使用libaio1t64而非libaio1)
- 按顺序安装:按照正确的依赖顺序安装MySQL组件
- 配置服务:设置root密码,配置MySQL服务
- 验证安装:确认MySQL正常运行
- 后续优化:根据实际需求配置参数和备份策略
离线安装MySQL虽然步骤相对复杂,但能够满足内网环境或安全隔离场景的需求。建议在实际部署前在测试环境验证所有步骤,确保生产环境部署顺利。同时,务必遵循安全最佳实践,配置强密码、限制远程访问权限,并定期进行数据备份。