【问题标题】:Unable to connect to SQL server using mysqli_connect, but MSSMS connects fine无法使用 mysqli_connect 连接到 SQL Server,但 MSSMS 连接正常
【发布时间】: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


【解决方案1】:

添加数据库名称

$connection = mysqli_connect('127.0.0.1', 'hmuuser', 'password','dbname');

另外here is 建议 - 主动拒绝它”表示主机在您尝试连接时发送了重置而不是确认。因此这在您的代码中没有问题。防火墙阻止了连接或托管服务的进程没有在该端口上侦听。这可能是因为它根本没有运行,或者因为它正在侦听不同的端口。

【讨论】:

    【解决方案2】:

    我想问题是,你使用 MySQLi 连接到 MSSQL 服务器。

    您应该改用正确的 MSSQL 扩展。 微软在 GitHub 上发布了他们的 SQL-Server for PHP 驱动程序:https://github.com/Microsoft/msphpsql 或者您使用 PHP 手册中记录的旧扩展:http://de2.php.net/manual/en/book.mssql.php 而且至少你可以设置 ODBC。

    其中一个应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2021-06-05
      相关资源
      最近更新 更多