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