)
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上运行需要两个关键依赖包依赖包名称版本下载地址libaio10.3.112-5下载链接libmecab20.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只允许本地连接。要启用远程访问登录MySQLmysql -uroot -p执行以下SQL命令UPDATE mysql.user SET host% WHERE userroot; FLUSH PRIVILEGES;修改MySQL配置文件sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf找到bind-address行注释掉或改为bind-address 0.0.0.0重启MySQL服务sudo systemctl restart mysql4.3 服务启动失败如果MySQL服务无法启动检查错误日志sudo tail -n 50 /var/log/mysql/error.log常见原因包括磁盘空间不足配置文件错误权限问题4.4 忘记root密码在离线环境中重置MySQL root密码停止MySQL服务sudo systemctl stop mysql以安全模式启动MySQLsudo mysqld_safe --skip-grant-tables 登录MySQL并更新密码mysql -urootFLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY 新密码; FLUSH PRIVILEGES; exit;重启MySQL服务sudo systemctl restart mysql5. 性能优化与安全配置安装完成后建议进行一些基本的性能和安全配置。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.sql5.3 监控与维护设置基本的监控# 检查运行状态 sudo systemctl status mysql # 查看连接数 mysqladmin -u root -p status # 查看进程列表 mysql -u root -p -e SHOW PROCESSLIST;考虑设置定期维护任务如优化表和清理日志。