Ubuntu 20.04离线安装MySQL 8.0.26全流程实战指南
在企业级开发或生产环境中,我们经常会遇到服务器无法连接外网的情况。这时候,离线安装数据库服务就成了必备技能。本文将带你从零开始,完成Ubuntu 20.04系统下MySQL 8.0.26的完整离线安装过程,包括依赖包下载、文件传输、安装顺序优化以及常见问题排查。
1. 准备工作:获取离线安装包与依赖项
在开始安装前,我们需要在有网络的环境中准备好所有必要的安装包。MySQL 8.0.26的离线安装需要以下组件:
- MySQL主安装包:包含服务器核心组件
- 系统依赖库:确保MySQL能正常运行的基础库
- 可选工具包:如客户端工具等
1.1 下载MySQL 8.0.26安装包
访问MySQL官方下载页面,选择"Ubuntu Linux"版本,下载以下文件:
mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar这个压缩包包含了安装MySQL所需的所有.deb文件。
1.2 获取系统依赖包
MySQL 8.0.26在Ubuntu 20.04上运行需要两个关键依赖包:
| 依赖包名称 | 版本 | 下载地址 |
|---|---|---|
| libaio1 | 0.3.112-5 | 下载链接 |
| libmecab2 | 0.996-10build1 | 下载链接 |
提示:建议将这些文件下载到本地一个专门的目录中,方便后续传输到目标服务器。
2. 文件传输到目标服务器
在没有外网连接的环境中,我们需要通过其他方式将文件传输到目标Ubuntu服务器。以下是几种常用的方法:
2.1 使用SCP命令传输
如果你有另一台可以访问目标服务器的Linux/Mac机器,可以使用scp命令:
scp /本地路径/mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar 用户名@服务器IP:/目标路径/ scp /本地路径/libaio1_0.3.112-5_amd64.deb 用户名@服务器IP:/目标路径/ scp /本地路径/libmecab2_0.996-10build1_amd64.deb 用户名@服务器IP:/目标路径/2.2 使用WinSCP工具(Windows用户)
对于Windows用户,WinSCP是一个图形化的选择:
- 下载并安装WinSCP
- 新建会话,选择SCP协议
- 输入服务器IP、用户名和密码
- 连接后,将文件从本地拖拽到服务器目标目录
2.3 通过物理介质传输
在极端网络隔离环境下,可以考虑:
- 使用U盘拷贝文件
- 通过内部文件共享服务器中转
- 刻录到光盘进行传输
3. 安装MySQL 8.0.26
所有文件传输到服务器后,我们就可以开始安装了。以下是详细步骤:
3.1 解压MySQL安装包
首先,进入存放文件的目录并解压:
sudo tar -xf mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar解压后会得到多个.deb文件,我们需要按特定顺序安装它们。
3.2 安装依赖包
在安装MySQL前,先安装系统依赖:
sudo dpkg -i libaio1_0.3.112-5_amd64.deb sudo dpkg -i libmecab2_0.996-10build1_amd64.deb3.3 安装MySQL组件
MySQL组件的安装顺序非常重要,错误的顺序可能导致依赖问题。以下是推荐的安装顺序:
基础插件和核心组件
sudo dpkg -i mysql-community-client-plugins_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-community-client-core_8.0.26-1ubuntu20.04_amd64.deb公共文件和客户端
sudo dpkg -i mysql-common_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-community-client_8.0.26-1ubuntu20.04_amd64.deb开发库和客户端工具
sudo dpkg -i libmysqlclient21_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i libmysqlclient-dev_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-client_8.0.26-1ubuntu20.04_amd64.deb服务器核心和完整服务
sudo dpkg -i mysql-community-server-core_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-community-server_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-server_8.0.26-1ubuntu20.04_amd64.deb
注意:在安装mysql-community-server时,系统会提示设置root密码和选择加密方式。对于兼容性考虑,建议选择"Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)"。
3.4 验证安装
安装完成后,检查MySQL服务状态:
sudo systemctl status mysql如果服务没有自动启动,可以手动启动:
sudo systemctl start mysql登录MySQL验证安装:
mysql -uroot -p输入你设置的密码,应该能看到MySQL命令行提示符。
4. 常见问题与解决方案
即使按照正确步骤安装,在离线环境中仍可能遇到各种问题。以下是几个常见问题及其解决方法。
4.1 依赖关系错误
如果在安装过程中出现依赖错误,可以尝试:
sudo apt-get install -f这条命令会尝试修复损坏的依赖关系。在离线环境中,它可能无法完全解决问题,但可以清除一些安装状态问题。
4.2 无法远程连接MySQL
默认情况下,MySQL只允许本地连接。要启用远程访问:
登录MySQL:
mysql -uroot -p执行以下SQL命令:
UPDATE mysql.user SET host='%' WHERE user='root'; FLUSH PRIVILEGES;修改MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf找到
bind-address行,注释掉或改为:bind-address = 0.0.0.0重启MySQL服务:
sudo systemctl restart mysql
4.3 服务启动失败
如果MySQL服务无法启动,检查错误日志:
sudo tail -n 50 /var/log/mysql/error.log常见原因包括:
- 磁盘空间不足
- 配置文件错误
- 权限问题
4.4 忘记root密码
在离线环境中重置MySQL root密码:
停止MySQL服务:
sudo systemctl stop mysql以安全模式启动MySQL:
sudo mysqld_safe --skip-grant-tables &登录MySQL并更新密码:
mysql -urootFLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; exit;重启MySQL服务:
sudo systemctl restart mysql
5. 性能优化与安全配置
安装完成后,建议进行一些基本的性能和安全配置。
5.1 基础性能调整
编辑MySQL配置文件:
sudo nano /etc/mysql/my.cnf根据服务器配置调整以下参数:
[mysqld] innodb_buffer_pool_size = 1G # 建议为物理内存的50-70% innodb_log_file_size = 256M max_connections = 200 query_cache_size = 64M5.2 安全加固建议
移除测试数据库:
DROP DATABASE test;移除匿名用户:
DELETE FROM mysql.user WHERE User='';创建专用应用用户:
CREATE USER 'appuser'@'%' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';定期备份:
mysqldump -u root -p --all-databases > full_backup.sql
5.3 监控与维护
设置基本的监控:
# 检查运行状态 sudo systemctl status mysql # 查看连接数 mysqladmin -u root -p status # 查看进程列表 mysql -u root -p -e "SHOW PROCESSLIST;"考虑设置定期维护任务,如优化表和清理日志。