在 Ubuntu 上设置或修改 MySQL 密码,常见场景有 首次设置密码、修改已有密码、忘记密码重置。下面按情况给你说明(适用于 MySQL 5.7 / 8.0)。
mysql_secure_installation(推荐)sudo mysql_secure_installation
按提示操作:
✅ 这是最标准、最安全的方式。
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
刷新权限:
FLUSH PRIVILEGES;
退出:
EXIT;
在某些 Ubuntu 版本中,MySQL root 默认使用 auth_socket 插件登录。
SELECT user, host, plugin FROM mysql.user WHERE user='root';
如果看到:
plugin = auth_socket
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
sudo systemctl restart mysql
CREATE USER 'devuser'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'localhost';
FLUSH PRIVILEGES;
Access denied for user 'root'@'localhost'
✅ 通常是密码错误或使用了 socket 认证
SHOW VARIABLES LIKE 'validate_password%';
| 场景 | 命令 |
|---|---|
| 首次设置密码 | sudo mysql_secure_installation |
| 修改密码 | ALTER USER |
| root 无法登录 | 改为 mysql_native_password |
| 忘记密码 | --skip-grant-tables |
如果你愿意,可以告诉我:
mysql --version)我可以给你 完全针对你系统的精确步骤 ✅