ubuntu 24.04 执行 sudo apt install mysql-server 实际安装的是 mariadb 11.4 而非 mysql,因官方源已将该包名重定向;需手动下载 oracle 提供的适配 22.04 的 mysql 8.4 .deb 包,并解决 libaio1 符号链接、libmecab2 等依赖后方可成功安装运行。

apt install mysql-server 装不到 MySQL 8.4,实际是 MariaDB
直接运行 sudo apt install mysql-server 在 Ubuntu 24.04 上**不会安装 MySQL**,而是安装 mariadb-server(版本 11.4)。这是因为 Ubuntu 官方源已将 mysql-server 包名重定向至 MariaDB,且 Oracle 官方尚未发布适配 Noble Numbat(24.04 代号)的 APT 仓库。你看到的 mysqld 进程、/etc/mysql/ 路径和行为都属于 MariaDB,与 MySQL 不兼容。
装 MySQL 8.4 的唯一可行路径:手动 dpkg + 补依赖
Oracle 只提供了标称适配 Ubuntu 22.04 的 mysql-server_8.4.x-1ubuntu22.04_amd64.deb 包,但它能在 24.04 上运行——前提是解决两个关键依赖问题:
-
libaio1已被重命名为libaio1t64,但 deb 包仍硬依赖旧名;需手动创建符号链接:sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1 /usr/lib/x86_64-linux-gnu/libaio.so -
libmecab2和libnuma1必须提前安装:sudo apt install -y libmecab2 libnuma1 - 下载并安装(以 8.4.3 为例):
curl -OL https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-server_8.4.3-1ubuntu22.04_amd64.debsudo dpkg -i mysql-server_8.4.3-1ubuntu22.04_amd64.debsudo apt --fix-broken install -y
启动失败常见报错及修复
安装后 sudo systemctl start mysql 失败,最典型的是:
-
error while loading shared libraries: libaio.so.1: cannot open shared object file→ 检查上面的符号链接是否创建成功,路径是否准确(ls -l /usr/lib/x86_64-linux-gnu/libaio.so*) - 启动后无
mysqld进程,journalctl -u mysql显示权限或 datadir 初始化失败 → 确保/var/lib/mysql归属mysql:mysql,且目录为空或已初始化 - 首次登录提示“Access denied for user 'root'@'localhost'” → 默认使用
auth_socket插件,需先用sudo mysql -u root免密进,再执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpass';
远程连接配置必须改两处
允许远程访问不能只改用户 host,否则连接会卡在握手阶段:
- 修改
/etc/mysql/mysql.conf.d/mysqld.cnf,注释掉bind-address = 127.0.0.1(或改为0.0.0.0) - 执行 SQL 更新用户权限:
UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';FLUSH PRIVILEGES; - 注意:Ubuntu 25+ 需用
caching_sha2_password插件,但 24.04 + 8.4 默认仍为mysql_native_password,别误用 ALTER USER 语句切换插件
真正麻烦的不是下载包,而是 libaio.so 符号链接位置、auth_socket 默认认证方式、以及 bind-address 和 user host 的双重限制——漏任一环,服务就起不来或连不上。











