注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秦时明月

做好今天的事!

 
 
 

日志

 
 
 
 

PHP连接远程数据库权限问题的解决方案  

2014-09-24 11:30:25|  分类: mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近想做一个连接数据库的结口,目前先做一个连接Mysql的接口

无奈连接时候出现权限不足情况

Host 'XXX is not allowed to connect to this MySQL server ...

当然连接本机的话,用localhost 或是127.0.0.1一点问题也没有

但是是想测试远程连接

所以把我改成这样$host = “192.168.1.1:3306”这样就当成了远程连接了

//我的内网IP为192.168.1.1 且3306为mysql的默认端口

在网上查了下,解决的方法有两个(任意一个都行)

一:修改数据库表。可能是你的帐号不允许从远程登陆,只允许localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"  (shell   cmd)

mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

当然这是第一种方法,更给力的是第二种方法,大家请看

二:授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;   

说明:各字母不区分大小写,且登录的名称为 name = "myuser" passwd ="mypassword" 这两个值可以自已修改

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

 例如:    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY '1235' WITH GRANT OPTION;

//这句就比上面多个IP限定

mysql>flush privileges;  最后记得刷新一下权限哦

现在可以正常连接啦

     $serverName     = '192.168.0.1:3306';//数据库服务器 
     $dbName         = 'DBNum1';//数据库名 
     $dbUsername     = 'myuser';//用户名 
     $dbPassword     = 'mypassword';//登陆密码 
   $result = mysql_connect($serverName,$dbUsername ,$dbPassword) or die("Lack of privilege"); 

怎么样,权限问题是不是解决了呢

  评论这张
 
阅读(28)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017