错误1044(42000):访问被拒绝用户“@'localhost”到数据库'db'

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

show grants显示:

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

我没有任何用户标识,但是当我想创build一个用户时,我没有privilleges,即使我没有一个用户,我也不知道如何设置权限!

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

我试图以root身份login:

 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 

不,您应该在bash中运行mysql -u root -p ,而不是在MySQL命令行中运行。 如果你在mysql中,你可以通过inputexit退出

您可能需要为MySQL数据库设置一个root帐户:

在terminaltypes中:

 mysqladmin -u root password 'root password goes here' 

然后调用MySQL客户端:

 mysql -h localhost -u root -p 

我被带到另一个问题。 每当我尝试login,我得到的消息,因为而不是正确的身份validation我login为匿名用户。 解决我的问题是:

要查看您是哪个用户以及您拥有哪些权限:

 select user(), current_user(); 

要删除讨厌的匿名用户:

 drop user ''@'localhost'; 

您可能想要尝试完整的login命令:

 mysql -h host -u root -p 

主机将是127.0.0.1

这样做只是为了确保合作存在。

使用mysql -u root -p允许我执行大量的数据库search,但由于path设置而拒绝任何数据库创build。

首先,如果您不熟悉命令行,请尝试使用webbrowser中的phpmyadmin。 这将确保你实际上有一个MySQL数据库创build和用户名。

这是你从命令行(bash)连接的方式:

 mysql -h hostname -u username -p database_name 

例如:

 fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb 

如果你在mysql shell中,inputexit退出 。 它会返回到命令提示符。 现在使用下面的命令启动mysql:

sudo mysql -u root -p

如果您的用户名是root以外的其他名称,请将上述命令中的“root”replace为您的用户名:

sudo mysql -u 你的用户名 -p

然后,它会问你的MySQL帐户密码,你的MySQL从现在不会显示任何访问权限问题。

@Nickparsa …你有两个问题:

1)。 mysql -uroot -p应该在bash(也称为terminal)中input,而不是在MySQL命令行中input。 你通过键入来修复这个错误

 exit 

在你的MySQL命令行中。 现在你回到了你的bash /terminal命令行。

2)。 你有一个语法错误:

 mysql -uroot -p; 

-p前面的分号需要去。 正确的语法是:

 mysql -uroot -p 

在你的bash命令行中键入正确的语法。 input密码,如果你有一个设置; 否则只需点击inputbutton。 你应该得到类似于这样的回应: 在这里输入图像描述

希望这可以帮助!

大多数开发人员login到服务器(我假设你有用户名和密码为MySQL数据库),然后从Bash他们切换到mysql> prompt然后使用下面的命令(这是行不通的

 mysql -h localhost -u root -p 

需要做的是在bash提示符下使用上面的命令 – >这样做时会询问input密码,如果直接input到mysql提示符

那么数据库,表格可以一一创build

我面临类似的僵局,所以分享经验

我在上面的答案中有正确的命令,我错过的是在工作台上,我们提到了'限制主机的连通性',它默认为“%” – 把它改成“localhost”,然后连接好!