MySQL:授予用户从任何计算机访问架构的权限

时间:2014-07-02 23:30:18

标签: mysql

这个问题可能已被多次询问,但我找不到解决问题的答案。 我想创建一个可以从任何计算机连接到我的盒子上的MySQL(5.5.35)的用户,并拥有除GRANT之外的架构的所有权限。

所以我开始:

$ mysql -u root -p 

然后

create user 'dbuser'@'%' identified by 'password';
grant usage on *.* TO 'dbuser'@'%';
grant all on testdb to 'dbuser'@'%';
grant all on testdb.* to 'dbuser'@'%';
flush privileges;
quit

但是当我尝试使用以下命令连接到数据库时,我感到很惊讶。

$ mysql -u dbuser -p testdb

我收到以下错误消息:

ERROR 1045 (28000): Access denied for user 'dbuser'@'localhost' 
(using password: YES)

我做了三重检查密码。我做错了什么?

干杯, 约翰

2 个答案:

答案 0 :(得分:0)

此处的线索是错误消息中的@localhost

摘自MySQL文档:

http://dev.mysql.com/doc/refman/5.5/en/connecting.html

在Unix上,MySQL程序特别对待主机名 localhost ,其方式可能与您预期的与其他基于网络的程序相比有所不同。对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。即使给出--port或-P选项指定端口号,也会发生这种情况。要确保客户端与本地服务器建立TCP / IP连接,请使用--host或-h指定主机名值127.0.0.1,或本地服务器的IP地址或名称。您还可以使用--protocol = TCP选项显式指定连接协议,即使对于localhost也是如此。


修复是创建用户'dbuser'@'localhost'和授予权限

或通过TCP / IP堆栈强制连接,例如:

mysql -h 127.0.0.1 -u dbuser -p testdb
      ^^^^^^^^^^^^

答案 1 :(得分:0)

醒来 MySQL社区服务器不从任何计算机连接 因为它是免费的

但是远程访问您的计算机呢?用遥控器打开电脑。 现在可以做到。但对您的系统和数据风险很大。一个好的 四处寻找是打开电脑时运行的文件。  我们已经得到了......诀窍是用密码定位文件 所以它开始remotle。