用IP地址无法访问远程MySQL数据库
1、首先,利用Navicat创建一个数据库和表,数据库名为testdb,表为userinfo,并添加一条新记录。

2、当用如下的数据库连接字符串访问数据库的时候,是没有问题的。
Driver = MySQL ODBC 5.1 Driver; Server = localhost; Port=3306; DATABASE = testdb; user = root; password = 123456;
其中,Server是数据库所在主机IP地址,Prot是连接端口;user和password则为连接数据库的用户名和密码
使用Select * from userinfo 可以正确获取到数据

3、但是当我把localhost换成实际的IP地址的时候,就报错了
说明这个数据库testdb是默认没开启访问权限的,默认情况下只允许localhost和127.0.0.1访问

4、方案有两种:
1、更新root账户的权限。打开mysql命令行窗口,输入
grant all privileges on *.* to root@"%" identified by 'abc' with grant option; flush privileges;
上述语句的完整模板为:
grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
flush privileges;
测试,没有问题。



5、创建一个新账户,如guest,并将可被访问的主机定义为%,即所有主机都可访问该账户。
测试,没有问题。



声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:46
阅读量:129
阅读量:183
阅读量:151
阅读量:91