您的位置:首页 > 数据库 > MySQL

Host 'HostName' is not allowed to connect to this MySQL server

2010-03-09 12:33 579 查看
pptv网络电视官方下载最好的网络电视电脑知识与技术中国无线论坛usee,uuse精美图片
声明:本文转自:http://blog.csdn.net/rayleigh_w/archive/2007/12/26/1968800.aspx

只为方便学习,别无他突

再次感谢原创作者

 

导读:

  应用程序采用ODBC方式从本机登陆MySQL数据库,出现下面的提示:

  [MySQL][ODBC 3.51 Driver]Host 'HostName' is not allowed to connect to this MySQL server

  (注:HostName为本机主机名称,在/etc/hosts文件中有设置。)

  很明显,应该是权限设置问题,查看一下权限设置信息:

  $ mysql -uroot -Dmysql

  mysql> select Host, User, Password from user;

  +-----------+------+----------+

  | Host????? | User | Password |

  +-----------+------+----------+

  | localhost | root |????????? |

  | localhost |????? |????????? |

  +-----------+------+----------+

  4 rows in set (0.00 sec)

  上述结果也很明显,root用户可以从localhost登陆MySQL数据库,且无需口令。

  这可怪了!?

  不过,有些莫名其妙的是,MySQL服务器为什么提示是:Host 'HostName',而不是localhost呢?

  服务器是如何获取这个“HostName”信息的?难道是/etc/hosts文件的问题?

  是不是MySQL获取客户端(SHELL命令行下执行mysql时就等于起了一个客户端)IP地址信息后,又根据hosts文件做了一个转换?

  查看一下文件/etc/hosts,看看有没有什么问题。

  $ grep HostName /etc/hosts

  10.10.10.10???? HostName

  问题似乎有些眉目了,MySQL数据库里面root用户的权限是针对地址localhost的,而非HostName

  所以,只需要添加别名localhost给10.10.10.10即可 ^_^

  $ grep HostName /etc/hosts

  10.10.10.10???? localhost HostName

  重启MySQL服务器,重新执行程序,可以顺利登陆数据库,问题解决。

  评论

  feeling

  Host "xxx.xxx.xxx.xxx" is not allowed to connect to this mysql server.

  关键字 ?? 如何解决客户端与服务器端的连接(mysql) :"xxx.xxx.xxx.xxx" is not allowed to connect to this mysql server.

  出处 ?

  1、进入mysql,创建一个新用户user:

  格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";

  grant select,update,insert,delete on *.* to
user@10.10.10.10identified by "user";

  查看结果,执行:

  use mysql;

  select host,user,password from user;

  可以看到在user表中已有刚才创建的user用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

  将host字段的值改为%就表示在任何客户端机器上能以user用户登录到mysql服务器,建议在开发时设为%。?? ??

  update user set host = '%' where user = 'user';

  2、?./mysqladmin -uroot -p21century reload

  ./mysqladmin -uroot -p21century shutdown

  3、./mysqld_safe --user-root &

  记住:对授权表的任何修改都需要重新reload,即执行第3步。

  如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在mysql数据库的db表中插入一条记录:

  use mysql;

  insert into db values('192.168.88.234','%','user','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

  update db set host = '%' where user = 'user';

  重复执行上面的第2、3步。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rayleigh_w/archive/2007/12/26/1968800.aspx

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/scsnsjsl_cs_dn/archive/2009/12/28/5094555.aspx

珍藏多年的搜黄抠妹版软件-男人必备,今天拿出来分享要的速度:

电信官方下载点一

电信官方下载点二

网通官方下载点一

网通官方下载点二
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐