当前位置: 首页 > news >正文

手把手教你搞定Ubuntu 20.04离线安装MySQL 8.0.26:从下载依赖到远程连接,保姆级避坑指南

Ubuntu 20.04离线部署MySQL 8.0全流程实战手册

在金融、军工等对网络隔离要求严格的场景中,离线环境部署数据库是每位运维人员的必修课。本文将带您完整走通Ubuntu 20.04系统下MySQL 8.0.26的离线安装全流程,涵盖从依赖包获取到远程访问配置的每个技术细节。不同于在线安装的便捷性,离线部署需要预先规划好所有组件,就像在荒野生存时必须准备好每件工具一样。

1. 离线环境准备工作

1.1 获取官方安装包与依赖项

在可联网的机器上访问MySQL官方下载页面(dev.mysql.com/downloads/mysql),选择"Ubuntu Linux"版本,下载包含完整组件的bundle包:

mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar

关键依赖项需要从Ubuntu官方仓库获取:

  • libaio1:异步I/O支持库
  • libmecab2:全文检索分词组件

推荐使用以下命令批量下载依赖(在可联网的Ubuntu机器上执行):

wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-5_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/m/mecab/libmecab2_0.996-10build1_amd64.deb

1.2 文件传输方案对比

传输方式适用场景优缺点对比
WinSCPWindows到Linux传输图形化操作简单,但需GUI环境
scp命令命令行环境无需额外工具,但需记住命令
U盘拷贝物理隔离环境无需网络,但需手动挂载设备

对于内网服务器,推荐使用scp命令进行传输:

scp *.deb user@server_ip:/target_directory

2. 系统环境初始化

2.1 目录结构规划

合理的文件组织能避免安装过程中的混乱:

/opt/mysql_offline/ ├── packages/ # 存放所有deb安装包 ├── scripts/ # 安装后配置脚本 └── backups/ # 系统原有配置文件备份

使用以下命令创建目录并移动文件:

sudo mkdir -p /opt/mysql_offline/{packages,scripts,backups} sudo mv *.deb /opt/mysql_offline/packages/

2.2 系统依赖检查

即使离线安装也需要基础运行环境:

# 检查关键系统组件 ls -l /lib/x86_64-linux-gnu/libc.so.6 ldd --version # 验证系统架构 uname -m

注意:Ubuntu 20.04默认已包含大多数运行时库,但若在最小化安装系统中,可能需要提前准备libstdc++6等基础库

3. 分步安装MySQL组件

3.1 解压安装包

进入存放目录执行解压:

cd /opt/mysql_offline/packages sudo tar -xvf mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar

解压后将得到约15个deb文件,安装顺序至关重要:

3.2 安装顺序与依赖解析

正确的安装流程应该遵循依赖关系树:

  1. 基础库组件

    sudo dpkg -i libaio1_0.3.112-5_amd64.deb sudo dpkg -i libmecab2_0.996-10build1_amd64.deb
  2. MySQL公共组件

    sudo dpkg -i mysql-common_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-community-client-plugins_8.0.26-1ubuntu20.04_amd64.deb
  3. 核心客户端与服务端

    sudo dpkg -i mysql-community-client-core_8.0.26-1ubuntu20.04_amd64.deb sudo dpkg -i mysql-community-server-core_8.0.26-1ubuntu20.04_amd64.deb

遇到依赖错误时,可使用--force-all参数强制安装(慎用):

sudo dpkg --force-all -i problematic_package.deb

3.3 关键配置步骤

安装mysql-community-server时会交互式提示:

设置root密码:YourStrongPassword123! 选择认证插件:mysql_native_password

重要:在离线环境务必选择mysql_native_password插件,caching_sha2_password需要网络验证

4. 安装后配置与优化

4.1 服务管理命令

掌握服务状态管理的基本操作:

# 启动服务 sudo systemctl start mysql # 设置开机自启 sudo systemctl enable mysql # 检查运行状态 sudo systemctl status mysql

4.2 配置文件调整

备份原始配置后编辑my.cnf:

sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /opt/mysql_offline/backups/ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

建议修改的关键参数:

[mysqld] default_authentication_plugin=mysql_native_password character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci

4.3 远程访问配置

分步骤安全开启远程访问:

  1. 登录MySQL控制台

    mysql -u root -p
  2. 执行权限配置

    CREATE USER 'remote_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'SecurePass123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_admin'@'%'; FLUSH PRIVILEGES;
  3. 修改绑定地址

    sudo sed -i 's/bind-address.*/#bind-address = 127.0.0.1/' /etc/mysql/mysql.conf.d/mysqld.cnf sudo systemctl restart mysql

5. 故障排查指南

5.1 常见错误解决方案

依赖缺失问题

sudo apt --fix-broken install

服务启动失败: 检查错误日志:

sudo tail -50 /var/log/mysql/error.log

连接被拒绝: 验证防火墙规则:

sudo ufw status sudo ufw allow 3306/tcp

5.2 性能调优建议

在/etc/mysql/mysql.conf.d/mysqld.cnf中添加:

innodb_buffer_pool_size = 1G innodb_log_file_size = 256M max_connections = 200

调整后需要重启服务:

sudo systemctl restart mysql

6. 安全加固措施

6.1 基础安全配置

执行mysql_secure_installation等效操作:

-- 删除匿名账户 DELETE FROM mysql.user WHERE User=''; -- 移除测试数据库 DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; -- 重载权限表 FLUSH PRIVILEGES;

6.2 审计日志配置

启用基础审计功能:

sudo mkdir /var/log/mysql_audit sudo chown mysql:mysql /var/log/mysql_audit

在配置文件中添加:

[mysqld] plugin-load = audit_log.so audit_log_format = JSON audit_log_file = /var/log/mysql_audit/audit.log

7. 备份与恢复方案

7.1 离线备份策略

使用mysqldump创建完整备份:

mysqldump -u root -p --all-databases --routines --triggers > full_backup.sql

定时任务配置示例(每天凌晨2点备份):

sudo crontab -e # 添加以下内容 0 2 * * * /usr/bin/mysqldump -u backup_user -p'password' --all-databases > /backups/mysql_$(date +\%Y\%m\%d).sql

7.2 数据恢复流程

从备份文件恢复:

mysql -u root -p < full_backup.sql

验证数据完整性:

SHOW DATABASES; USE target_database; SHOW TABLES;
http://www.cnnetsun.cn/news/2823344.html

相关文章:

  • 别再手动算温度了!用STM32F4+MAX31865搞定PT100铂电阻,附三线制接线避坑指南
  • TVA为什么是企业智能化升级的战略支点(20)
  • YOLO车辆定位+Transformer中文车牌识别全流程代码包(含训练/推理/可视化/合成数据工具)
  • AI-Shoujo HF Patch终极指南:一键解锁70+插件与完整汉化 [特殊字符]✨
  • FPGA学习路径:从Verilog到Nios II软核的实战经验分享
  • 当 AI 学会了“越狱”:从 Codex 绕过 Sudo 事件看智能体权限管理的边界
  • ArcGIS工具箱实战:手把手教你定制自己的MODIS数据处理工具(附完整Python代码)
  • 3ds Max可编辑衣柜模型:带预览图、分组结构与材质预留的实用家具资源
  • Logisim避坑指南:Plexers复用器模块的5个常见配置错误与调试技巧
  • Mythos推理增强机制:结构化验证如何提升大模型逻辑可信度
  • 揭秘高斯过程与核函数:多种核表示可视化及复合核构建方法
  • 抖音批量下载助手完整指南:3步轻松保存海量视频资源
  • gem5 GCN3 Docker镜像国内拉取与构建全攻略:从gitee同步到离线部署
  • 深度解析:FigmaCN如何通过实时翻译技术重塑中文设计师的工作体验
  • 从代码注释到工程实践:手把手拆解一个开源STM32 FOC项目(芯路遥工程笔记精讲)
  • 收藏!小白程序员必备:Agent 面试八股文(大模型必备,速看!)
  • SWUST OJ 99题:Euclid‘s Game 背后的博弈论,用C++代码5分钟理解必胜策略
  • 3种高效获取同花顺问财数据的方法:Python自动化实践指南
  • LabVIEW与数据采集卡实现高精度双通道幅值相位测量
  • 别再只盯着R²了!用MSE更细致地评估你的回归模型预测效果(R语言代码保姆级教程)
  • 分布式训练通信优化:梯度同步、流水线并行与通信计算重叠,突破多卡扩展瓶颈
  • STM32 GPIO深度解析:从寄存器到HAL库的实战指南
  • 鸣潮自动化脚本体验分享:如何让游戏自己玩自己,解放你的双手与时间
  • 36:机台对接典型场景2:下发生产任务
  • 微信分享配置总失败?手把手调试weixin-js-sdk的config与签名生成
  • OBD诊断实战:手把手教你用CANoe/CANalyzer抓取并解读$09服务报文(ISO15031标准)
  • E7Helper终极指南:24小时自动刷第七史诗,解放你的双手
  • XUnity.AutoTranslator技术架构深度解析:构建Unity游戏多语言翻译系统
  • 如何在浏览器中直接使用微信网页版?wechat-need-web技术方案全解析
  • Qt Creator 15/16 新版本找不到翻译工具?手把手教你手动添加 lupdate 和 lrelease 配置