正在连接到本地SQL Server实例

2024-06-25 05:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图连接到在我的计算机上运行的SQL Server的本地实例。我可以用这个代码从我们的服务器连接到一个本地实例,但是在我的本地机器上失败了。在

我已经在SQLServer配置中启用了命名管道和所有IP。在

我使用的代码如下:

from pymssql import connect
server = r'.\SQLEXPRESS2014' # I've also tried MORGANT-PC\SQLEXPRESS and SQLEXPRESS2014
username = 'MyUserName'
password = 'MyPassword'
master_database_name = 'SuperSecretDatabase'
port = 5000
server_args = {'host': server, 'user': username, 'password': password,
               'database': master_database_name, 'port': port} # I've tried having the first key be both host and server, because pymssql's docs are unclear on the difference.
master_database = connect(**server_args)

如果使用实例名称,则会出现以下错误:

^{pr2}$

我把端口设置为5000,这样我就可以用

server = 127.0.0.1
port = 5000

失败,错误消息略有不同:

pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist\nNet-Lib error during Unknown error (10035)\n')

我在这里读到了很多答案,大多数答案似乎都表明这是FreeTDS的问题,但我使用的是Windows8.1,所以我没有FreeTDS。在

我尝试过用主机\实例名与sqlcmd连接,效果很好。它也适用于SSMS。在

我尝试过将.\SQLEXPRESS2014同时传递给host和{}参数,pymssql.connect()中的这两个参数都失败了,并出现了相同的错误。在

我曾短暂地尝试过使用adodbapi,但得到的错误消息完全相同。在


Tags: 实例代码masterhostserverportconnect错误
3条回答

请尝试使用默认的SQL server端口进行连接,该端口是1433,而不是5000。 并检查是否可以使用sqlmgmtstudio连接到正确的实例。在

是的,1433是默认值。在

这对我来说很好:

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=server_name; Database=db_name;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable;"))
odbcClose(channel)

最终的解决方案是综合运用各种因素。在

  1. 我需要禁用除127.0.0.1以外的所有IP。在
  2. 我需要创建C:\免费电话会议全文如下:

    [global] port = 1433 tds version = 7.0

  3. 我需要将SQL实例登录的帐户更改为LocalSystem。

相关问题 更多 >