这个问题可能已被多次询问,但我找不到解决问题的答案。 我想创建一个可以从任何计算机连接到我的盒子上的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)
我做了三重检查密码。我做错了什么?
干杯, 约翰
答案 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)
但是远程访问您的计算机呢?用遥控器打开电脑。 现在可以做到。但对您的系统和数据风险很大。一个好的 四处寻找是打开电脑时运行的文件。 我们已经得到了......诀窍是用密码定位文件 所以它开始remotle。