错误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”,然后连接好!