SQLSTATE[HY000] 未知主机名称(严重性 2)

SQLSTATE[HY000] 未知主机名称(严重性 2)

我遇到了一个问题,找不到解决方案,希望您能帮助我。我回滚了我的服务器,现在所有 php 脚本都无法连接到其他服务器。脚本是最新的,因为回滚是上周进行的。

我收到 SQL 错误:

SQLSTATE[HY000] 未知主机名称(严重性 2)

在 cmd 上我得到:

SQLState = S1T00,NativeError = 0 错误 = [unixODBC][Microsoft][SQL Server Native Client 11.0]登录超时已过期
SQLState = 08001,NativeError = 10022 错误 = [unixODBC][Microsoft][SQL Server Native Client 11.0]与 SQL Server 建立连接时发生与网络相关或特定于实例的错误
。找不到服务器或无法访问服务器。请检查实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。有关详细信息,
请参阅 SQL Server 联机丛书。SQLState = 08001,NativeError = 10022 错误 = [unixODBC][Microsoft][SQL Server Native Client 11.0]TCP 提供程序:错误代码 0x2726

在 telnet 上我可以连接到远程服务器。sqlcmd 还允许我连接到远程服务器

如果有人能帮助我,请告诉我。我不知道下一步该怎么做。所有帮助都将不胜感激。

这是尝试连接的测试脚本

$link = mssql_connect('xx.xxx.xxxx.xx,1433','myuname','mypwd');

    if (!$link) {
    die('Something went wrong while connecting to MSSQL:'. mssql_get_last_message());
    }

答案1

对我来说,解决方法分为三个步骤:

首先,我编辑/etc/freetds/freetds.conf并更改了 tds 版本,如下所示:

tds version = 8.0

第二步是没有输入端口号。端口已经是 1433,不指定端口号可以解决我遇到的完全相同的问题。

最后,为了正确连接,我必须以@user1054844 的身份重新启动网络提及像这样:

/etc/init.d/networking restart

完成所有这些步骤后,我就可以连接并使用 SQL Server 数据库了。

答案2

我只需要修改 etc/network 并修改接口文件,然后
sudo /etc/init.d/networking restart由于某种原因,dns-namesevers 是错误的。

相关内容