进入 MySQL CLI

  • 在命令行中输入以下命令登录
  • MySQL:bashCopy code
  • mysql -u root -p
  • 输入管理员密码。

从 MySQL 8.0 开始,IDENTIFIED BYGRANT 语句中已经被移除了。如果用户已经存在,你不需要在 GRANT 语句中指定密码。相反,应该先创建用户,再为其授予权限。

解决方法

1. 用户已经存在的情况

如果用户 'phpmyadmin'@'localhost' 已经存在,那么你只需要授予权限,不需要使用 IDENTIFIED BY。直接执行以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

2. 创建用户并授予权限

如果用户 'phpmyadmin'@'localhost' 不存在,你可以先创建用户,再授予权限。

  • 先创建用户
   CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'UpaVP7Go6liP';
  • 然后授予权限
   GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
  • 刷新权限
   FLUSH PRIVILEGES;

3. 检查用户是否存在

你可以通过以下命令来检查用户是否已经存在:

SELECT User, Host FROM mysql.user WHERE User = 'phpmyadmin';

如果返回了 phpmyadmin 用户,那么你只需要授予权限;如果没有返回结果,说明用户不存在,需要先创建用户。

总结

  • 如果用户已经存在,只需要用 GRANT ALL PRIVILEGES
  • 如果用户不存在,先用 CREATE USER 创建用户,然后再授予权限。
  • 从 MySQL 8.0 开始,GRANT 语句中不再支持 IDENTIFIED BY

根据以上步骤,你应该能够正确地解决这个问题。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注