SQL Server pyodbc Проблема с драйвером: libc ++ abi.dylib: завершается с необработанным исключением типа std :: runtime_error - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь подключиться к моей базе данных SQL Server, используя python с pyodbc на моем Mac.Полная ошибка, которую я получаю при запуске:

libc ++ abi.dylib: завершение с необработанным исключением типа std :: runtime_error: collate_byname :: collate_byname не удалось создать для C / en_CA.

Код Python для подключения с использованием драйвера:

import pyodbc

cnxn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server}"
                  "Server=simvo-dbs.database.windows.net,1433;"
                  "Database=degree-planner-db;"
                  "UID=simvo_admin@simvo-dbs;"
                  "PWD=McGill_514;"
                  "loginTimeout=30;")

Другие соответствующие файлы:

odbcinst.ini:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.17.dylib
UsageCount=1

odbc.ini:

[MSSQL]
TDS_Version = 7.3
Driver = ODBC Driver 17 for SQL Server
Server = simvo-dbs.database.windows.net
Port = 1433

Любая идея о том, что это за проблема, будет принята с благодарностью.Я использую MAC.

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Конфигурирование freetds.conf (mac: /usr/local/etc/freetds.conf) позволяет вам ссылаться на конфигурацию DSN в строке подключения вместо передачи символов, которые приводят к ошибкам.

Если вы добавите следующее в нижней частиthe freetds.conf:

[mssql]
host = db-name.random-string.region.rds.amazonaws.com
port = 1433
tds version = 8.0 
client charset = UTF-8

И затем вы можете передать значение DSN в строке подключения, которое не должно вызывать никаких ошибок:

con_str = f"DSN=mssql,UID=username,PWD=XXXXXX"

con = pyodbc.connect(con_str) # shouldn't throw any errors

Эта информация была адаптирована сэтот пост: https://github.com/lionheart/django-pyodbc/wiki/Mac-setup-to-connect-to-a-MS-SQL-Server

0 голосов
/ 06 ноября 2018

Я получаю ту же ошибку. Я изменил настройки, чтобы использовать драйвер ODBC 13 для SQL Server, ошибка исчезла.

0 голосов
/ 17 мая 2018

У меня та же проблема, и, насколько я могу судить, решения нет.Но вы можете обойти его, запустив скрипт так:

env LANG=C python3 myscript.py

Надеюсь, это поможет.

...