首页 > 解决方案 > 连接到数据库时pyodbc中的接口错误

问题描述

我正在连接到 MSSQL 数据库。我收到一个错误,因为用户名包含“”我认为这个“”给出了错误。

在下文中,我将附上我的代码和我得到的错误。如果有人可以为此提出一些解决方案,那就太好了。我已经知道有两种类型的身份验证,如 Windows 和普通的一种。当我试图与正常的连接时。正如我在 Windows 上尝试过的一样,但它也没有成功。 注意:我已经尝试使用注释连接字符串,但仍然无法正常工作。您可以在输出中看到它正在打印我们想要的内容,但是在传递 connect() 函数时会引发错误。

以下是代码:

server = 'servername'
database = 'databasename'
username =  dict_config['username'] #"LOCAL\shahrukhan"
print(username)
password = password_asdfsd

# conn_str = r'DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password
# print(conn_str)
# mssql_db_conn = pyodbc.connect(conn_str)
# mssql_db_conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password)
# mssql_db_conn = pyodbc.connect(Trusted_Connection=True, driver = '{SQL Server}',server = server, database = database)
mssql_db_conn = pyodbc.connect('Driver={SQL Server};'
                               'Server=servername;'
                               'Database=databasename;'
                               'Trusted_Connection=yes;')
# mssql_db_conn = pyodbc.connect(Trusted_Connection='no',Driver='{ODBC Driver 17 for SQL Server}',Server=server,Database=database)
if(mssql_db_conn !=""):
    mssql_db_cursor = mssql_db_conn.cursor()
    print("Connected")

我得到以下输出:

LOCAL\\shahrukhan
DRIVER={ODBC Driver 17 for SQL Server};SERVER=servername;DATABASE=databasename;UID=LOCAL\\shahrukhan;PWD=password 
Traceback (most recent call last):
  File "test.py", line 34, in <module>
    mssql_db_conn = pyodbc.connect(conn_str)
pyodbc.InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'LOCAL\\shahrukhan'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'LOCAL\\shahrukhan'. (18456)") ```




标签: pythonsql-serverdatabase-connectionpyodbcpymssql

解决方案


推荐阅读