如何连接到sql server到PHP进行远程连接

时间:2015-02-02 10:12:25

标签: php sql-server database

我已经使用了这段代码但没有连接到sql server进行远程连接,错误就是fire.I出现此错误:

Couldn't connect to SQL Server on XX.XXX.XX.XX

代码:

<?php
$myServer = "XX.XXX.XX.XX";
$myUser = "New";
$myPass = "123";
$myDB = "Live"; 

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die("Couldn't connect to SQL Server on $myServer"); 

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB"); ?>

此错误消息是什么?

1 个答案:

答案 0 :(得分:1)

首先尝试远程服务器上的telnet端口,默认情况下为3306。 如果您无法访问此端口,则可能不允许在防火墙上或mysql服务器未侦听远程连接。

然后检查服务器上的mysql设置,默认情况下只能从localhost访问。在Linux服务器上,它通常在/etc/mysql/my.cnf 只需评论这一行:

bind-address        = 127.0.0.1

然后检查您用于登录的用户的授权,请注意您既需要从现在的位置登录的授权,也需要在服务器上登录的授权(作为localhost)。

来自http://dev.mysql.com/doc/refman/5.1/en/adding-users.html的示例:

CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
WITH GRANT OPTION;

CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
WITH GRANT OPTION;

使用用户名“monty”和密码“some_pass”创建一个用户,该用户拥有所有数据库(*.*)中所有表的所有权限  从任何地方(localhost% - 作为任何IP)。