У меня на компьютере есть база данных SQL, к которой я пытаюсь подключиться с помощью Python. Во-первых, когда я подключался к базе данных с помощью SQL Server Management Studio, я использовал опцию подключения с аутентификацией Windows. Теперь я пытаюсь подключиться к нему так же, как с помощью Python. Вот код, который у меня есть
import pyodbc
cnxn = pyodbc.connect(r'Driver = {SQL Server};Server=localhost; \
Database=fatigue_life_test_db;Trusted_Connection=yes;')
cursor = cnxn.cursor()
cnxn.close()
Вторая строка выдает следующую ошибку:
pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (5); [08001] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (0)')
Я также попробовал заменить localhost на имя сервера (MSSQLSERVER)
, но все равно выдает ту же ошибку. Я новичок в базах данных SQL
, поэтому, вероятно, мне здесь чего-то не хватает. Я не смог найти способ решить эту проблему даже с помощью обширного поиска в Google.
Вы можете решить эту проблему, выполнив следующие действия:
import pyodbc try: cnxn = pyodbc.connect( r'Driver = {SQL Server};' r'Server=localhost,1433;' # Assuming the default port 1433 r'Database=fatigue_life_test_db;' r'Trusted_Connection=yes;' ) cursor = cnxn.cursor() print("Connection established.") except pyodbc.Error as e: print("Error in connection:", e) finally: if 'cnxn' in locals() and cnxn: cnxn.close()
Я считаю, что в вашей строке подключения отсутствуют имя пользователя и пароль. Попробуйте вот так:
cnxn = pyodbc.connect(r'Driver = {SQL Server};Server=localhost;Database=fatigue_life_test_db;Trusted_Connection=yes;UID = {USERNAME};PWD = {PASSWORD}')
Более подробную информацию вы можете получить по ссылке ниже (см. пункт №5):
Тогда ты исправил мою проблему