ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db'

15 浏览
0 Comments

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db'

我想开始在MySQL中编写查询语句。

show grants显示:

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

我没有任何用户ID,但当我想创建一个用户时,我没有权限,而且我不知道如何为一个用户设置权限,因为我连一个用户都没有!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation

我尝试以root身份登录:

mysql> mysql -u root -p;
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 'mysql -u root -p' at line 1
mysql> mysql -u root -p root;
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 'mysql -u root -p root' at line 1

0
0 Comments

问题的原因是访问数据库时,用户权限不足或者用户名和密码不正确。解决方法是确保使用正确的用户名和密码,并授予该用户访问数据库的权限。

文章内容如下:

在使用MySQL的过程中,有时会遇到如下错误信息:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db'。这个错误的原因是访问数据库时,用户权限不足或者用户名和密码不正确。下面我们来看一下解决这个问题的方法。

首先,我们需要确保使用正确的用户名和密码。在命令行中输入 mysql -u 用户名 -p,然后输入密码进行登录。如果密码为空,则直接按回车键即可。

如果用户权限不足,我们需要授予该用户访问数据库的权限。可以使用以下命令来授予用户权限:

GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'localhost';

FLUSH PRIVILEGES;

这样,用户就可以使用指定的用户名和密码来访问数据库了。

另外,在Windows系统下,退出MySQL的方法略有不同。在命令行中输入 exit 或者 quit 即可退出MySQL。

如果 exit 或者 quit 命令无法生效,可能是因为您还在输入命令,MySQL将其解释为命令的一部分而不是退出命令。这种情况下,可以尝试在命令行中输入分号并按回车键来终止命令,然后下一行应该以 mysql> 开头而不是 ->,这样退出命令才会生效。

另外,您也可以尝试使用 ctrl+d 快捷键来退出MySQL。

总结起来,要解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db' 这个问题,首先需要确保使用正确的用户名和密码,并授予该用户访问数据库的权限。对于Windows系统,可以使用 exit 或者 quit 命令退出MySQL,或者使用 ctrl+d 快捷键。

0
0 Comments

问题原因:访问被拒绝,可能是由于没有给用户授予对数据库的访问权限所致。

解决方法:设置一个MySQL数据库的root账户,并授予其对数据库的访问权限。

具体步骤如下:

1. 在终端中输入以下命令设置root账户的密码:

mysqladmin -u root password 'root密码'

2. 使用以下命令调用MySQL客户端:

mysql -h localhost -u root -p

这个方法适用于我,初始时工作正常,但突然有一天停止工作了。为什么会发生这种情况呢?

我遇到了以下错误:sudo: mysqladmin: command not found,请问我该怎么办?MySQL已在系统偏好设置中运行。

我得到以下错误:mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the SUPER privilege(s) for this operation'。

0
0 Comments

(ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db')

在登录时出现了上述错误,这是因为我以匿名用户的身份登录而没有正确进行身份验证。解决方法如下:

首先,可以通过以下命令查看当前用户和其权限:

select user(), current_user();

然后,可以通过以下命令删除匿名用户:

drop user ''@'localhost';

这种方法解决了我的问题,即使我使用的是"mysql -u username -p"命令。非常奇怪的是,user()返回的是我的用户名,但current_user()却是localhost...不知道为什么。

另外,有用户反馈在尝试删除用户''@'localhost'时,出现了"Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation"错误。解决方法是在删除之前先授予相应的权限。

这个网站提供了关于如何删除匿名用户的信息:download.nust.na/pub6/mysql/doc/refman/5.1/en/…

0