日期:2014-05-17  浏览次数:20550 次

郁闷问题,非常的郁闷。
有台服务器 linux+apache+mysql+php 另安装了phpmyadmin
使用phpmyadmin可以正常访问服务器
可是用我自己写的php
连接数据库说目标机器积极拒绝。无法连接……。

    $username = "Test";   
    $psword = "123456";  
    $hostname = "10.12.18.27";  
    $dbName = "TestDb"; 

    $server_link = mysql_connect("$hostname","$username","$psword")  
            or die("Can't connect to server" . mysql_error()); 

这句话就出问题…………。娘亲啊,没天理
用root 或Test账号,在phpmyadmin都可以正常登陆.
唯一的差别就是phpmyadmin在服务器上面
我的php代码在我电脑上面(Apache+php+win7)
再说Test账号,什么远程登陆,任意位置登陆功能全打开了的……

------解决方案--------------------
没有开放mysql远程连接的权限
------解决方案--------------------
你可以用sqlyog或者命令行去连接看看。看能不能连接成功。
------解决方案--------------------
mysql 数据库里的 user 表的 host 项,从 localhost 改称 % 
或者新加条记录,host 项为 你本地的ip地址,并授权
重启mysql服务

规矩的做法:
使用 GRANT 命令
你想myuser使用mypassword从任何主机连接到mysql服务器的话。 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;