gpt4 book ai didi

mysql - 更正创建用户时的mysql语法错误

转载 作者:行者123 更新时间:2023-11-29 05:31:21 25 4
gpt4 key购买 nike

所以我得到了非常常见的 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) mysql 错误。我已经尝试了论坛上的所有典型修复,通过 mysql_safe 方法登录,然后尝试重置我的 root 密码。然而,当这样做时它返回;

UPDATE user SET password=PASSWORD("PASSWORD")WHERE user="root";
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

因为没有行受到影响,所以我假设没有用户需要实际更改。我试图创建一个用户:

CREATE USER 'root'@'localhost' IDENTIFIED BY 'root'
-> GRANT ALL ON *.* TO 'root'@'localhost'
-> flush privileges;

However this returns with ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GRANT ALL ON *.* TO 'root'@'localhost'

查看当前用户是什么:

mysql> SELECT user();
+--------+
| user() |
+--------+
| root@ |
+--------+

我认为语法错误是因为“root”之后的@ 之后没有任何内容。我如何将此信息编辑为 root@localhost 并更正问题?

更新

在仔细阅读 mysqld 文档后,我进入了这个部分,它工作得很好。

停止 mysqld 并使用 --skip-grant-tables 选项重新启动它。这使任何人都可以在没有密码和所有权限的情况下进行连接。因为这是不安全的,您可能希望结合使用 --skip-grant-tables 和 --skip-networking 来防止远程客户端连接。

使用以下命令连接到 mysqld 服务器:

shell> mysql

在 mysql 客户端中发出以下语句。将密码替换为您要使用的密码。

mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;

FLUSH 语句告诉服务器将授权表重新加载到内存中,以便它注意到密码更改。

最佳答案

应该是三个sql语句,

CREATE USER 'root'@'localhost' IDENTIFIED BY PASSWORD 'root';
GRANT ALL ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

关于mysql - 更正创建用户时的mysql语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com