如何在Amazon Linux AMI中使用pyodbc连接到RDS SQL服务器?

4

我正在建立一个在AWS EC2 Linux机器和RDS SQL服务器之间的pyodbc连接。当我使用我的本地Windows机器时,连接是有效的,并且能够编辑数据库。

https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017

我按照这个教程安装了驱动程序,但仍然遇到问题。

cat /etc/odbcinst.ini 

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.2
UsageCount=1

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.1.1
UsageCount=1

cat ~./odbc.ini
cat: ~./odbc.ini: No such file or directory

代码片段如下:
db = pyodbc.connect("Driver={Microsoft ODBC Driver 17 for SQL Server};"
                      "Server=<Server Name>;"
                      "Database=<DB Name>;"
                      "uid=<username>;pwd=<password>"
                      )

错误信息如下:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'Microsoft ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

更新:可以使用Sqlcmd在终端查询数据库。

如果您有与编程和开发相关的亚马逊问题需要咨询,请点赞此留言。 - jww
2个回答

1
db = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};"
                      "Server=<Server Name>;"
                      "Database=<DB Name>;"
                      "uid=<username>;pwd=<password>"
                      )

最终这对我有用。只是从驱动程序名称中删除了Microsoft这个词。


0

像这样找到您的驱动程序

cnxn = pyodbc.connect('DRIVER={/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1};SERVER='+server+';DATABASE='+database+';uid='+username+';pwd='+ password) 

谢谢你的回答。我尝试了这个方法,但是没有成功。不过,只是把Driver={ODBC Driver 17 for SQL Server};中的Microsoft一词删除就解决了错误。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接