ubuntu 22.04 默认 apt install mysql-server 安装的是 mysql 8.0.45(canonical 维护的稳定 ga 版),已集成 openssl 3.0.18、关键 bug 修复与安全加固;root 默认使用 auth_socket 认证,需 alter user 切换认证方式并 flush privileges 才能密码登录。

Ubuntu 22.04 默认 apt install mysql-server 安装的是 MySQL 8.0.45(Canonical 维护的稳定版),它已是当前 8.0 系列最新 GA 版本,无需额外操作即可获得安全加固、OpenSSL 3.0.18 和关键 Bug 修复——所谓“最新”,不是指 Oracle 官网刚发布的某个小版本号,而是指 Ubuntu 官方源中经过验证、适配 Jammy 的生产就绪版本。
为什么直接 apt install 就是“最新可用”的 8.0
Ubuntu 22.04 的 mysql-server 包由 Canonical 团队打包并持续更新,当前已同步至 8.0.45-0ubuntu0.22.04.1(2026 年 1 月发布)。这个版本不是“旧版”,而是针对该发行版深度测试过的最终稳定构建。你执行:
sudo apt update && sudo apt install -y mysql-server
安装的就是它。运行 apt-cache policy mysql-server 可确认 Candidate 版本含 8.0.45;若显示更低(如 8.0.33),说明本地缓存未刷新或误启用了其他源。
root 登录失败?auth_socket 是设计,不是 bug
安装后 mysql -u root -p 报错 Access denied,是因为 root@localhost 默认使用 auth_socket 插件认证——这要求你用 sudo mysql 进入,不输密码。这是安全默认,不是配置错误。
- 要支持密码登录(比如 Navicat、DBeaver 连接),运行:
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_password'; FLUSH PRIVILEGES;"- 不要手动改
plugin字段或删系统用户行,否则sudo mysql会彻底失效且无法恢复 - 生产环境强烈建议新建普通用户(如
dev),而非修改 root 密码
远程访问连不上?三个环节缺一不可
只改 bind-address = 0.0.0.0 不够,必须同时满足:
- MySQL 用户授权:执行
CREATE USER 'dev'@'%' IDENTIFIED BY 'strong_pwd'; GRANT ALL ON *.* TO 'dev'@'%'; FLUSH PRIVILEGES;(禁用root@'%') - 系统防火墙放行:运行
sudo ufw allow 3306(若启用 ufw) - 云服务器额外检查:阿里云/腾讯云安全组必须显式开放 TCP 3306,源 IP 不能留空
配置文件路径是 /etc/mysql/mysql.conf.d/mysqld.cnf,不是 /etc/my.cnf;修改后必须 sudo systemctl restart mysql。
想装 Oracle 官方源里的特定小版本?小心依赖和初始化失败
除非有明确兼容性需求(如对接某旧中间件),否则不建议切换到 MySQL 官方 APT 源。它可能引入未适配 Ubuntu 22.04 的二进制依赖(如 libtinfo.so.6 冲突),且 MySQL 8.4+ 初始化更严格,systemctl start mysql 卡在 activating 很可能是 /var/lib/mysql 权限不对或 /etc/my.cnf 存在语法错误。
若真需指定版本(如 8.0.33),必须:
- 先运行
apt list -a mysql-server确认完整包名(含后缀,如8.0.33-1ubuntu22.04) - 再执行
sudo apt install mysql-server=8.0.33-1ubuntu22.04 - 立刻
sudo apt-mark hold mysql-server锁定,否则下次apt upgrade会覆盖
最易被忽略的是:MySQL 8.0.45 的 caching_sha2_password 默认认证方式对老客户端不友好,但强行切回 mysql_native_password 会削弱安全性——权衡点不在“能不能连”,而在“谁连、在哪连、是否值得降级”。











