Ubuntu MySQL 8 修改密码详解
本文直接切入主题,介绍如何在 Ubuntu 系统上修改 MySQL 8 数据库的 root 密码。MySQL 8 引入了更强的安全机制,默认禁用了旧版的安全连接方式。以下是详细操作步骤及注意事项。
操作步骤
- 以 root 用户或具有 sudo 权限的用户登录 Ubuntu 系统。
- 停止 MySQL 服务。
- 修改 MySQL 配置文件,临时启用旧版安全连接。
- 重新启动 MySQL 服务并使用旧版方式登录。
- 修改 root 密码。
- 恢复 MySQL 配置文件并重启服务。

详细步骤与命令示例
1. 停止 MySQL 服务
sudo systemctl stop mysql
确保 MySQL 服务完全停止。
2. 修改 MySQL 配置文件
sudo nano /etc/mysql/my.cnf
在文件末尾添加以下内容:
[client]
default-character-set=utf8mb4
[mysqld]
skip-grant-tables
保存并退出(在 nano 中按 Ctrl+X,然后按 Y,最后按 Enter)。
3. 重新启动 MySQL 服务
sudo systemctl start mysql
此时 MySQL 将以不校验权限的方式启动。
4. 登录 MySQL 并修改密码
mysql -u root -p
进入 MySQL 后,执行以下命令修改 root 密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
EXIT;
注意:新密码需符合 MySQL 密码策略(长度至少 8 位,包含数字和特殊字符)。
5. 恢复配置文件并重启服务
sudo mv /etc/mysql/my.cnf.bak /etc/mysql/my.cnf
sudo systemctl restart mysql
删除备份文件(可选):
sudo rm /etc/mysql/my.cnf.bak
注意事项与实用技巧
- 权限问题:操作过程中需确保有足够的权限,否则命令会报错。
- 备份配置:修改配置文件前建议备份原文件,避免配置错误导致无法启动。
- 旧版登录:如果 MySQL 8.0 之前的版本仍需兼容,可使用 `–skip-grant-tables` 参数。
- 安全加固:修改密码后,建议执行 `GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost’ WITH GRANT OPTION; FLUSH PRIVILEGES;` 重新授予权限。
- 非 root 用户:若需修改其他用户密码,将 `’root’` 替换为对应用户名。
命令示例总结
以下是完整流程的命令集合,可直接复制执行(需逐条确认):
sudo systemctl stop mysql
sudo nano /etc/mysql/my.cnf
# 添加 skip-grant-tables
sudo systemctl start mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
EXIT;
sudo mv /etc/mysql/my.cnf.bak /etc/mysql/my.cnf
sudo systemctl restart mysql
通过以上步骤,可以安全有效地修改 Ubuntu MySQL 8 的 root 密码。务必注意备份与权限问题,避免因操作失误导致服务中断。