【发布时间】:2017-07-02 08:38:40
【问题描述】:
我已经阅读了许多与此类似的问题,但没有一个答案与我相关。我正在尝试使用 PHP 访问 SQL 服务器。 SQL server 和 PHP 都在我的 Windows 10 机器上运行。这是我的PHP代码(用户名和密码是任意的):
$connection = mysqli_connect('127.0.0.1', 'hmuuser', 'password');
这会导致以下错误:
PHP Warning: mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it.
这是我使用 MSSMS 的连接(成功):
编辑:
我能够使用此链接解决我的问题:http://blog.citrix24.com/configure-sql-express-to-accept-remote-connections/
使用此链接我启用 SQL 浏览器,并设置一个静态端口来连接到 SQL 服务器。但是,我遇到了一个新错误:
PHP Warning: mysqli_connect(): MySQL server has gone away in C:\HMUAPI\Index.php on line 7
PHP Warning: mysqli_connect(): Error while reading greeting packet. PID=9920 in C:\HMUAPI\Index.php on line 7
PHP Warning: mysqli_connect(): (HY000/2006): MySQL server has gone away in C:\HMUAPI\Index.php on line 7
我的代码已更改为以下导致此错误:$connection = mysqli_connect('127.0.0.1:1434', 'hmuuser', 'password');
【问题讨论】:
-
尝试使用 localhost 而不是 127.0.0.1。您的 sql server 上很可能不允许远程连接。 127.0.0.1 将充当远程连接,即使它是本地连接。
-
我尝试使用本地主机,同样的错误。 MSSMS 使用 127.0.0.1 连接,所以我认为这不是问题。
-
如果问题仍然存在,请看这里:php.net/manual/en/function.mssql-connect.php
-
这是对 mysql_connect 的引用,而我使用的是更新版本(未弃用)mysqli_connect
-
请检查是否有防火墙阻止连接或托管服务的进程未在该端口上侦听。
标签: php sql sql-server