【问题标题】:SQL Server pyodbc Driver issue: libc++abi.dylib: terminating with uncaught exception of type std::runtime_errorSQL Server pyodbc 驱动程序问题:libc++abi.dylib:以 std::runtime_error 类型的未捕获异常终止
【发布时间】:2018-05-16 01:16:23
【问题描述】:

我正在尝试在我的 Mac 上使用 python 和 pyodbc 连接到我的 SQL Server 数据库。我运行时得到的完整错误是:

libc++abi.dylib:以 std::runtime_error 类型的未捕获异常终止:collat​​e_byname::collat​​e_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。

【问题讨论】:

    标签: sql-server odbc driver pyodbc


    【解决方案1】:

    据我所知,我有同样的问题,但没有解决方案。但是您可以像这样运行脚本来解决它:

    env LANG=C python3 myscript.py
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      配置 freetds.conf (mac: /usr/local/etc/freetds.conf) 允许您在连接字符串中引用 DSN 配置,而不是传入会导致错误的字符。

      如果在 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

      【讨论】:

        【解决方案3】:

        我遇到了同样的错误。我将设置更改为使用 ODBC Driver 13 for SQL Server,错误消失了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-14
          • 2014-10-04
          • 2017-05-25
          • 1970-01-01
          相关资源
          最近更新 更多