进入 MySQL CLI:
- 在命令行中输入以下命令登录
- MySQL:bashCopy code
mysql -u root -p
- 输入管理员密码。
从 MySQL 8.0 开始,IDENTIFIED BY
在 GRANT
语句中已经被移除了。如果用户已经存在,你不需要在 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
。
根据以上步骤,你应该能够正确地解决这个问题。