ubuntu 22.04 官方源中 mysql-server 即 mysql 8.0 正式版,因 canonical 维护的包直接对应经 lts 验证的 8.0.x 稳定分支;默认安装无需版本号或换源,但必须先执行 sudo apt update,否则可能因元数据过期导致安装失败。

直接用 sudo apt install mysql-server 就能装上 Ubuntu 22.04 官方源里的 MySQL 8.0 正式版,无需加版本号、不用换源、不推荐手动下载 deb 包——这是最稳、最省事的方式。
为什么默认 apt install 就是 MySQL 8.0 正式版
Ubuntu 22.04 的官方仓库中,mysql-server 包由 Canonical 维护,对应的就是 MySQL 8.0.x 系列的长期稳定分支(如当前默认为 8.0.33 或 8.0.36),不是测试版或旧版 5.7。它经过 LTS 级别验证,适配 systemd、AppArmor 和默认内核,开箱即用。
-
apt search mysql-server输出里显示的mysql-server/jammy表示该包属于 jammy(22.04 代号),版本字段含8.0.x即为正式版 - 跳过
sudo apt update可能拉到过期元数据,导致Unable to locate package错误 - 别信“必须加
-8.0后缀”,mysql-server-8.0是 Oracle 官方仓库的包名,在 Ubuntu 源里不存在
安装后 root 登录失败?这不是 bug,是 auth_socket 认证机制
MySQL 8.0 默认用 auth_socket 插件认证 root@localhost,所以 sudo mysql 能直连,但 mysql -u root -p 必然报错 Access denied。这不是装错了,是设计如此。
- 先运行
sudo mysql进入 MySQL Shell - 执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码'; - 立刻跟一句:
FLUSH PRIVILEGES;,否则新密码不生效 - 此后才能用
mysql -u root -p正常登录,各类 GUI 工具(DBeaver、Workbench)也才认得
远程连接连不上?bind-address 和用户权限必须同时改
只改配置文件或只授权用户,都会导致远程连接失败。两处缺一不可,且顺序不能乱。
- 编辑
/etc/mysql/mysql.conf.d/mysqld.cnf,把bind-address = 127.0.0.1改成bind-address = 0.0.0.0 - 在 MySQL 内创建远程用户:
CREATE USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; - 授最小必要权限,例如:
GRANT SELECT, INSERT ON mydb.* TO 'remote_user'@'%';,别直接GRANT ALL - 改完必须重启服务:
sudo systemctl restart mysql;若开了 ufw,还得sudo ufw allow 3306
最容易被忽略的是 mysql_secure_installation 这一步——它不只是设 root 密码,还会删匿名用户、禁 test 库、关远程 root 登录。跳过它,等于留了个默认后门。运行时若提示 “Password validation plugin is not loaded”,说明插件没启用,需手动进 MySQL 执行 INSTALL COMPONENT 'file://component_validate_password';。











