推荐用 apt 安装 ubuntu 官方源中的 mysql-server 包;安装后需改 root 认证方式为 caching_sha2_password 并设密码;如需远程访问,应修改 bind-address、创建专用用户并开放防火墙端口。

Ubuntu 22.04/24.04 安装 MySQL 8.0 的推荐方式
直接用 apt 安装官方仓库提供的 mysql-server 包,是最稳妥的选择。Ubuntu 22.04+ 默认源已包含 MySQL 8.0.x,无需手动添加 Oracle 官方 APT 源(反而容易因 GPG 密钥过期或架构不匹配导致 apt update 失败)。
- 运行
sudo apt update && sudo apt install mysql-server即可完成安装与基础服务启动 - 安装后
mysql服务默认启用并自启,可用sudo systemctl status mysql确认 - 首次安装不会设置 root 密码,而是采用
auth_socket插件认证——这意味着你只能通过sudo mysql本地登录,不能用密码直连
如何安全地初始化 root 用户密码并切换为密码认证
跳过这步会导致后续远程连接、GUI 工具(如 DBeaver、MySQL Workbench)或应用配置失败。必须显式修改 root@localhost 的认证方式:
- 先以管理员身份进入:
sudo mysql - 执行以下语句(注意替换
your_strong_password):ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'your_strong_password';
- 刷新权限:
FLUSH PRIVILEGES; - 退出后验证:
mysql -u root -p,输入刚设的密码应能成功登录 - ⚠️ 不要用
mysql_native_password,除非明确对接老旧客户端;MySQL 8.0 默认caching_sha2_password更安全且兼容主流驱动
MySQL 绑定地址与远程访问配置要点
默认配置下 bind-address = 127.0.0.1,仅允许本机连接。若需局域网其他机器访问(如开发测试),需调整网络层和权限层两处:
- 编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address行,改为:bind-address = 0.0.0.0
(或指定内网 IP,如192.168.1.100) - 重启服务:
sudo systemctl restart mysql - 创建专用远程用户(**不要开放 root 远程**):
CREATE USER 'devuser'@'192.168.1.%' IDENTIFIED BY 'strong_pass_2024';<br>GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'192.168.1.%' WITH GRANT OPTION;
- 确认防火墙放行 3306 端口:
sudo ufw allow 3306(若启用 ufw)
常见初始化失败现象及定位命令
如果 mysql 服务无法启动,别急着重装,先看日志和状态:
- 查看实时错误:
sudo journalctl -u mysql -f(按 Ctrl+C 退出) - 典型报错
Can't start server: Bind on TCP/IP port: Address already in use→ 表明 3306 被占用,用sudo ss -tulpn | grep :3306查进程 - 报错
Table 'mysql.plugin' doesn't exist→ 初始化未完成,尝试手动执行:sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql(慎用,仅当数据目录为空且确定无残留时) - 忘记 root 密码?不用重装:停服务 → 启动跳过权限验证 → 更新密码 → 重启服务(完整流程需临时修改
mysqld.cnf加skip-grant-tables)
MySQL 在 Ubuntu 上的初始化逻辑比 CentOS 更“静默”,很多问题出在认证插件、绑定地址、权限粒度三个地方,而不是版本或依赖缺失。配置改完务必验证登录路径和网络可达性,别只看 systemctl status 显示 active 就认为万事大吉。










