在 Ubuntu 上修改 MySQL 密码,常见有 记得原密码 和 忘记密码 两种情况。下面分别说明(以 MySQL 5.7 / 8.0 为例)。
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
如果是其他用户,把
root换成用户名即可。
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
或(部分版本):
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo mysqld --skip-grant-tables &
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;
exit
sudo systemctl restart mysql
Access denied for user 'root'@'localhost'sudoroot 使用的是 auth_socket 插件(Ubuntu 默认)查看:
SELECT user, host, plugin FROM mysql.user;
如果是 auth_socket,可改为密码登录:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
Ubuntu 上 MySQL root 常使用 sudo mysql 登录:
sudo mysql
如果你告诉我:
我可以给你最精确的一步一步命令。