0

我可以使用 SQL 数据库名称连接到 SQL Server,但我的要求是我需要连接到 sql server 而不连接到数据库。

我有以下信息可用端口号、实例名称、数据库用户/密码、IP 地址。

我当前的命令是这个

engine_handle = create_engine('mssql+pyodbc://sa:pass@<IP address>/master', echo=False)

现在我可以连接了,因为我已经给出了数据库名称 - master 但如果我删除数据库名称并给出实例名称或完全保留它。我会收到以下错误。

"engine = create_engine('mssql+pyodbc://sa:pass@IP 地址', echo=True)"

return self.dbapi.connect(*cargs, **cparams) DBAPIError: (Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') None None

如果我可以使用实例名称而不是数据库名称进行连接,那就可以了。

任何帮助表示赞赏。

4

1 回答 1

2

使用最初为您工作的 URL。

engine_handle = create_engine('mssql+pyodbc://sa:pass@<IP address>/master', echo=False)

然后你可以发出CREATE DATABASE命令,或者你需要做的任何其他操作。

当您省略数据库名称时,sqlalchemy正在寻找以您指定的 IP 地址命名的 DSN。当然,DSN 不存在,会抛出异常。您必须使用此处记录的有效连接 URL 。

关于不想连接到数据库的评论 - 每次连接到 SQL Server 时,您的连接都必须为连接设置一些数据库。创建时,您的登录名分配了一个默认数据库(如果未指定,master则使用)。

于 2013-09-27T13:03:20.167 回答