ubuntu 24.04 默认仓库已内置 mysql 8.0,直接执行 sudo apt update && sudo apt install mysql-server 即可完成安装,服务自动启用并监听 127.0.0.1:3306;首次登录用 sudo mysql -u root(无密码),但必须立即运行 sudo mysql_secure_installation 配置安全选项,再通过 create user 和 grant 创建专用远程用户,而非直接修改 root 远程权限或 bind-address。

mysql-server 直接装就行,Ubuntu 24.04 默认仓库里的 mysql-server 就是 MySQL 8.0,不用额外加源或手动下载包。
用 apt install mysql-server 最省心
Ubuntu 24.04 的官方软件源已内置 MySQL 8.0(当前稳定版为 8.0.36 或更高),直接走系统包管理器最稳妥:
-
sudo apt update后执行sudo apt install mysql-server即可完成服务端 + 客户端 + 基础工具的安装 - 安装后自动启用并启动
mysql服务,监听127.0.0.1:3306 -
mysql --version输出类似mysql Ver 8.0.36-0ubuntu0.24.04.1,说明版本正确 - 首次登录可用
sudo mysql -u root(无密码),这是 Ubuntu 包的默认行为,不是 bug
必须立刻运行 mysql_secure_installation
刚装完的 MySQL 是不设防的:匿名用户、test 数据库、空 root 密码全开着。不跑这个脚本,等于把数据库裸奔在公网。
- 执行
sudo mysql_secure_installation,按提示操作 - 关键选项:启用密码验证策略(选
1中等强度)、设置 root 密码、删匿名用户、禁远程 root、删 test 库、重载权限 - 如果中途卡在 “VALIDATE PASSWORD component” 提示,直接回车跳过也行,但务必设好 root 密码
- 完成后,
sudo mysql -u root -p才能登录,且root@localhost无法远程连接(这是安全默认)
要远程访问?别改 bind-address,先建专用用户
很多人一上来就去改 /etc/mysql/mysql.conf.d/mysqld.cnf 里的 bind-address,结果连本地都连不上——因为 Ubuntu 24.04 的 MySQL 默认用 socket 连接本地 root,改了 bind-address 反而破坏默认路径。
- 真正该做的是:进 MySQL 后,用
CREATE USER和GRANT显式授权远程用户 - 例如:
CREATE USER 'appuser'@'192.168.1.%' IDENTIFIED BY 'StrongPass123!'; - 然后:
GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'appuser'@'192.168.1.%'; FLUSH PRIVILEGES; - 防火墙记得开
3306端口:sudo ufw allow 3306 - 此时再检查
bind-address是否为127.0.0.1(保持默认),或改为0.0.0.0—— 仅在确认用户权限无误后才动它
遇到 Authentication plugin ‘caching_sha2_password’ 拒绝连接?
这是 MySQL 8.0 默认认证插件,旧客户端(如某些 PHP 版本、老版 DBeaver)不支持,报错类似:Authentication plugin 'caching_sha2_password' cannot be loaded。
- 临时兼容方案(开发环境可用):
ALTER USER 'appuser'@'%' IDENTIFIED WITH mysql_native_password BY 'newpass'; FLUSH PRIVILEGES; - 生产环境建议升级客户端驱动,而不是降级认证方式
- 注意:root 用户不建议改认证插件,避免影响系统工具调用
- 如果用的是 Ubuntu 自带的
mysql-client,它已适配caching_sha2_password,不会出这个问题
MySQL 8.0 在 Ubuntu 24.04 上的安装本身很简单,真正的复杂点在于权限模型变更和认证插件切换——这些不是“装不上”的问题,而是“连不上”“权限不对”“插件不认”的隐性坑,得一个个对症处理。











