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^)/~