MySQL无法远程连接的解决方法

上次搞完了SQL Server 2005的远程连接,现在轮到MySQL了...回想下连接MySQL数据库的连接字符串:

Server=localhost;Database=gyl;Uid=root;Pwd=111111; 

Server的值是localhost吧...是支持本地的嘛..远程想想无非就是把localhost改成IP地址,想得简单,可它就是报错...

错误说明: Host '60-248-32-13.HINET-IP.hinet.net' is not allowed to connect to this MySQL server


其实不是MySQL默认不支持远程,是MySQL的默认用户root默认不支持远程,因为是localhost...

说白了,也就是权限问题,root用户的Host默认就是localhost...

以下解决方法是重新建了一个用户,支持远程访问,而不用去修改root的权限,建议这样做,呼呼...

 

1.首先用root用户登陆

2.输入以下语句,用于创建新用户,并赋予相应权限

grant select,insert,update,delete on [db_name].* to [username]@[ip_address] identified by '[password]'; 

说明:

[db_name]: 表示欲开放给新用户的数据库名称

[username]: 新用户的用户名
[password]: 新用户的密码,包函上引号( ' )

[ip_address]: IP地址或者IP反查后的DNS Name

 

重点说明: (本人经历的,(~ o ~)~zZ)

(1).如果想赋予所有操作的权限

  grant all on ... to 用户名......

(2).如果想赋予操作所有数据库的所有表的权限

  grant ... on *.* to 用户名......

(3).如果想赋予某个数据库的所有表

  grant ... on 数据库名称.'*' to 用户名...... ([ * ]两边一定要加单引号)

(4).如果想赋予某个数据库的某张表

  grant ... on 数据库名称.表名 to 用户名......

(5).如果想任何客户端都能通过该用户名远程访问

  grant ... on ... to 用户名@% ....... (要把IP地址改成[ % ])

(6).改完了以后一定要重新启动MySQL服务

 

其他说明: 

想看到这些用户都在哪张表里了吗....请执行

 use mysql;
 select host,user,password from user;

 host字段表示登陆的主机...

 

好了...写完啦...睡觉去...爸爸妈妈晚安...嘻\(^o^)/~

posted @ 2009-11-25 22:50  吴庆阳  阅读(2341)  评论(0编辑  收藏  举报