温馨提示×

ubuntu mysql如何设置密码

小樊
49
2026-08-11 11:38:31
栏目: 云计算

在 Ubuntu 上设置或修改 MySQL 密码,常见场景有 首次设置密码修改已有密码忘记密码重置。下面按情况给你说明(适用于 MySQL 5.7 / 8.0)。


一、首次安装后设置 MySQL root 密码

方法 1:使用 mysql_secure_installation(推荐)

sudo mysql_secure_installation

按提示操作:

  • 是否启用密码强度校验(可选)
  • 设置 root 密码
  • 删除匿名用户
  • 禁止 root 远程登录(建议)
  • 删除 test 数据库

✅ 这是最标准、最安全的方式。


二、已知密码,修改 MySQL 用户密码

1️⃣ 登录 MySQL

mysql -u root -p

2️⃣ 修改密码(MySQL 5.7 / 8.0)

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

刷新权限:

FLUSH PRIVILEGES;

退出:

EXIT;

三、Ubuntu 下 MySQL root 默认无密码(常见)

在某些 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;

四、忘记 MySQL root 密码(重置)

1️⃣ 停止 MySQL

sudo systemctl stop mysql

2️⃣ 跳过权限表启动

sudo mysqld_safe --skip-grant-tables &

3️⃣ 免密码登录

mysql -u root

4️⃣ 重置密码

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

5️⃣ 重启 MySQL

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 认证

❓ MySQL 8 密码策略太严格

SHOW VARIABLES LIKE 'validate_password%';

七、快速总结

场景 命令
首次设置密码 sudo mysql_secure_installation
修改密码 ALTER USER
root 无法登录 改为 mysql_native_password
忘记密码 --skip-grant-tables

如果你愿意,可以告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • MySQL 版本(mysql --version

我可以给你 完全针对你系统的精确步骤

0