Ubuntu 24.04 默认不提供 MySQL 8.4,apt install mysql-server 实际安装的是 MariaDB 11.4;需手动下载 Oracle 官方适配 22.04 的 .deb 包,安装 libaio1t64 并创建 libaio.so.1 符号链接,再通过 dpkg -i 安装并修复依赖,最后配置 bind-address 和 root 用户权限方可正常使用。

Ubuntu 24.04 默认不提供 MySQL 8.4,apt install mysql-server 装的是 MariaDB 11.4
这不是配置问题,是包源重定向导致的。Ubuntu 24.04(Noble Numbat)官方仓库已将 mysql-server 包名指向 mariadb-server,执行安装命令后看到的 mysqld 进程、/etc/mysql/mariadb.conf.d/ 路径、甚至 mysql --version 输出都属于 MariaDB,和 MySQL 完全不兼容。Oracle 官方也未发布适配 24.04 的 APT 仓库或 .deb 包——直接 apt add repository 会 404。
唯一可行路径:手动安装 Oracle 官方 mysql-server_8.4.x-1ubuntu22.04_amd64.deb
该包标称适配 Ubuntu 22.04(jammy),但在 24.04 上可运行,前提是补全依赖并修复符号链接。关键不是“装上”,而是“启动成功”:
- 先确认架构:
uname -m必须为x86_64 - 安装必要依赖:
sudo apt install -y libmecab2 libaio1t64 libnuma1(注意:24.04 中libaio1已更名为libaio1t64) - 创建兼容符号链接(否则
mysqld启动报libaio.so.1: cannot open shared object file):sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1 /usr/lib/x86_64-linux-gnu/libaio.so - 下载并安装:
curl -OL https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-server_8.4.3-1ubuntu22.04_amd64.deb && sudo dpkg -i mysql-server_8.4.3-1ubuntu22.04_amd64.deb - 修复依赖断裂:
sudo apt --fix-broken install -y
mysql_secure_installation 可能失败,需手动初始化并设 root 密码
由于包非原生适配,首次启动后 mysql_secure_installation 常卡在连接阶段。应改用以下流程:
- 确保服务已启动:
sudo systemctl start mysql,检查状态是否为active (running) - 若提示 “Access denied for user 'root'@'localhost'”,说明未初始化或认证插件不匹配
- 登录时加
--skip-grant-tables绕过权限检查(仅临时):sudo mysqld --skip-grant-tables --user=mysql & - 另开终端,用空密码登录:
mysql -u root,然后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123!'; FLUSH PRIVILEGES; - 停掉跳过权限的进程,正常重启服务:
sudo systemctl restart mysql
远程访问需两步:改 bind-address + 改 root 用户 host
仅改用户 host='%' 不够,mysqld 默认仍只监听 127.0.0.1:
- 编辑配置:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address = 127.0.0.1行,注释掉或改为bind-address = 0.0.0.0 - 登录 MySQL 执行:
USE mysql; UPDATE user SET host='%' WHERE user='root'; FLUSH PRIVILEGES; - 若用
caching_sha2_password插件(如 Ubuntu 25 环境),客户端可能不兼容;24.04 手动安装后默认仍是mysql_native_password,无需额外切换 - 别忘了开放防火墙端口:
sudo ufw allow 3306
libaio.so 符号链接和 bind-address 配置的联动——缺一即导致服务无法启动或无法远程连接。


















