离线安装MySQL 8.0在Ubuntu 22.04上可行但易出问题,因需手动处理systemd注册、目录权限、依赖顺序及安全配置,而APT安装自动完成这些环节。

离线安装 MySQL 8.0 服务端在 Ubuntu 22.04 上可行,但远不如 apt install mysql-server 稳定;它容易因依赖缺失、包顺序错乱或权限配置遗漏导致 mysqld 启动失败,仅建议在完全无网络且无法临时配置代理的封闭环境使用。
为什么离线安装比 apt 安装更容易出问题
APT 安装自动处理了 systemd 单元注册、/var/lib/mysql 初始化、mysql 系统用户创建、日志轮转和安全插件启用;而离线安装需手动补全这些环节。常见失败点包括:
-
mysqld启动时报Failed to start mysqld.service: Unit mysqld.service not found—— 缺少mysql-server包自带的 systemd service 文件 - 执行
mysqld --initialize失败,提示Can't find error-message file或Permission denied——/usr/local/mysql目录未 chown 给mysql用户,或libtinfo.so.5缺失 - 安装后
mysql -u root -p连不上,报ERROR 2002 (HY000): Can't connect to local MySQL server—— 忘记启动服务,或 socket 路径不匹配(如/tmp/mysql.sockvs/var/run/mysqld/mysqld.sock)
必须按顺序安装的 DEB 包列表
Ubuntu 22.04(jammy)下,MySQL 8.0.45 的官方离线包是 mysql-server_8.0.45-1ubuntu22.04_amd64.deb-bundle.tar,解压后需按以下顺序安装(缺一不可,顺序错误会报依赖冲突):
-
libaio1_0.3.112-13build1_amd64.deb(基础 I/O 库) -
libmecab2_0.996-14build9_amd64.deb(全文检索依赖) -
mysql-common_8.0.45-1ubuntu22.04_amd64.deb(共享配置) mysql-community-client-plugins_8.0.45-1ubuntu22.04_amd64.debmysql-community-client-core_8.0.45-1ubuntu22.04_amd64.debmysql-community-client_8.0.45-1ubuntu22.04_amd64.deblibmysqlclient21_8.0.45-1ubuntu22.04_amd64.debmysql-client_8.0.45-1ubuntu22.04_amd64.deblibmysqlclient-dev_8.0.45-1ubuntu22.04_amd64.debmysql-community-server-core_8.0.45-1ubuntu22.04_amd64.debmysql-community-server_8.0.45-1ubuntu22.04_amd64.deb-
mysql-server_8.0.45-1ubuntu22.04_amd64.deb(最后安装,触发初始化)
执行命令示例:dpkg -i libaio1_*.deb && dpkg -i libmecab2_*.deb && dpkg -i mysql-common_*.deb ...;若某步报 dependency problems,立即运行 apt-get install -f 修复,否则后续包会安装失败。
安装后必须手动完成的三件事
DEB 包安装完不等于 MySQL 就能用。以下操作漏掉任一环节,systemctl start mysql 都会失败:
- 确认 systemd 服务已注册:
ls /lib/systemd/system/mysql*应存在mysql.service;若无,说明mysql-server_*.deb未正确安装,需重装该包 - 检查数据目录权限:
chown -R mysql:mysql /var/lib/mysql;若之前手动初始化过,还要确保/var/log/mysql/可写 - 验证并启动服务:
sudo systemctl daemon-reload && sudo systemctl enable mysql && sudo systemctl start mysql;然后用sudo systemctl status mysql看是否为active (running)
离线安装最易被忽略的是:它不会自动运行 mysql_secure_installation,也不会帮你把 root@localhost 切换到 mysql_native_password 插件。这意味着即使服务跑起来了,你用 Navicat 或 IDEA 连接时仍会卡在认证失败——得手动进 sudo mysql 执行 ALTER USER 和 FLUSH PRIVILEGES。


















