【问题标题】:MS SQL Driver with Amazon Linux AMI an Python带有 Amazon Linux AMI 和 Python 的 MS SQL 驱动程序
【发布时间】:2023-04-04 19:10:01
【问题描述】:

我看过很多关于 PHP 的此类帖子,但没有关于 Python 的帖子。

我正在尝试在 AWS Elastic Beanstalk 上部署 Flask 应用程序以连接到 MSSQL 数据库。在开发中(在 Windows 上)我一直在使用 pyodbc 和一个 microsoft sql server 驱动程序。

根据(基本上已经过时的)博客和 SO 问题,我一直在尝试使用 FreeTDS 和 unixODBC 连接到我在 AWS Linux 实例上的数据库,但无法正确配置。

我希望能够使用本机 Microsoft 驱动程序,但 Microsoft 支持页面没有列出针对 Amazon Linux 的特定下载。亚马逊声称他们的 Linux 类似于 Redhat 的 Fedora。我应该下载哪个版本的 MS SQL 驱动程序以用于 Amazon Linux?

谢谢

更新:

我已经知道如何使用 FreeTDS,但是一旦我部署了我的应用程序,它与我的开发服务器相比非常慢 - 相反,我在接受的答案中接受了建议,数据库请求也大大加快了

【问题讨论】:

标签: python sql-server amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

Microsoft 推荐的 Python 驱动程序是 pyodbc

Python SQL Driver - pyodbc

Linux 的版本无关紧要(大部分情况下)。它是您需要兼容的 Python 版本。

这篇 Stack Overflow 文章展示了如何将 SqlAlchemy 与 Flask 一起使用:

Connect to MSSQL Database using Flask-SQLAlchemy

【讨论】:

    【解决方案2】:

    如果您尝试在 ElasticBeanstalk 上使用 FreeTDS,值得注意的是,他们 yum 存储库上的版本目前是 0.91,这是古老的(从 2011 年开始)。

    安装最新版本后,我的所有问题都迎刃而解。我不知道这是否能解决您的性能问题,但如果不能,希望它可以帮助其他人。

    这是我想出的解决方案(直接从源代码下载并安装 freetds,而不是过时的 yum 存储库):

    1. 在您的项目中创建一个名为“/.ebextensions/001_install_freetds.config”的文件
    2. 粘贴这些内容:

    commands:
      000_download_freetds:
        command: "[ ! -e /home/ec2-user/freetds-1.00.86.tar.gz ] && wget -nc ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.86.tar.gz -O /home/ec2-user/freetds-1.00.86.tar.gz || true"
      001_extract_freetds:
        command: "[ ! -e /home/ec2-user/freetds-1.00.86 ] && tar -xvf /home/ec2-user/freetds-1.00.86.tar.gz -C /home/ec2-user/ || true"
      002_configure_freetds:
        command: "[ ! -e /usr/local/etc/freetds.conf ] && cd /home/ec2-user/freetds-1.00.86 && sudo ./configure --prefix=/usr/local --with-tdsver=7.4 || true"
      003_build_freetds_and_install:
        command: "[ ! -e /usr/local/etc/freetds.conf ] && ( cd /home/ec2-user/freetds-1.00.86 && sudo make && sudo make install ) || true"
    1. 重新部署您的应用

    注意:您可能需要更改各种文件名以反映最新的稳定版本。这就是我写这篇文章时最新的稳定版本。

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 2016-11-04
      • 2020-10-25
      • 2012-05-30
      • 2018-10-07
      • 2018-05-30
      • 2017-03-28
      • 1970-01-01
      • 2019-03-28
      相关资源
      最近更新 更多