我可以使用SQL数据库名称连接到SQL Server,但我的要求是我需要连接到sql server而不连接数据库。
我可以获得以下信息 端口号,实例名称,数据库用户/密码,IP地址。
我当前的命令就是这个
engine_handle = create_engine('mssql+pyodbc://sa:pass@<IP address>/master', echo=False)
现在我能够连接,因为我已经给了db name - master但是如果我删除db name并给出实例名称或完全保留它。我会收到以下错误。
“engine = create_engine('mssql + pyodbc:// sa:pass @ IP address',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
没关系如果我可以使用实例名称而不是DB名称进行连接。
感谢任何帮助。
答案 0 :(得分:2)
使用最初适合您的网址。
engine_handle = create_engine('mssql+pyodbc://sa:pass@<IP address>/master', echo=False)
然后您可以发出CREATE DATABASE
命令,或者您需要执行的任何其他操作。
当您省略数据库名称时,sqlalchemy
正在查找以您指定的IP地址命名的DSN。当然,DSN不存在,抛出异常。您必须使用有效的连接网址,如文档here。
关于不想连接到数据库的注释 - 每次连接到SQL Server时,您的连接必须为连接设置某些数据库。创建时,您的登录名已分配默认数据库(如果未指定,则使用master
)。