在Linux Redhat/CentOS上为msodbcsql17安装unixODBC> = 2.3.1

Sea*_*ayn 4 redhat centos unixodbc amazon-ec2 pyodbc

我尝试使用CentOS/RedHat(Linux)在AWS EC2上安装msodbcsql17.

这些是我所遵循的步骤,来自Microsoft(LINK):

sudo su

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#RedHat Enterprise Server 6
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo

#RedHat Enterprise Server 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel
Run Code Online (Sandbox Code Playgroud)

该指令有效,直到安装msodbcsql17.我收到以下错误消息:

Error: Package: msodbcsql17 (packages-microsoft-com-prod)
           Requires: unixODBC >= 2.3.1
           Available: unixODBC-2.2.14-14.7.amzn1.i686 (amzn-main)
               unixODBC = 2.2.14-14.7.amzn1
Run Code Online (Sandbox Code Playgroud)

我认为问题是,unixODBC的最大可用版本小于2.3.1,但我如何安装msodbcsql17,以便与Microsoft连接?

Sea*_*ayn 7

经过长时间的研究,我找到了一个解决方案:

  1. 从任何来源下载unixODBC> = 2.3.1,如rpm(示例源)
  2. 从Microsoft下载msodbcsql17和mssql-tool作为rpm(链接到Repo)(在我的情况下为msodbcsql17-17.1.0.1-1.x86_64.rpmmssql-tools-17.1.0.1-1.x86_64.rpm)
  3. 通过ftp(如FileZilla)将文件传输到EC2实例
  4. 使用EC2终端并转到上传文件的目录
  5. 输入sudo rpm -i unixODBC-2.3.1-11.el7.x86_64.rpm以安装必要的版本(也许,您必须将版本号更改为上载文件的版本号)
  6. 输入 sudo rpm -i msodbcsql17-17.1.0.1-1.x86_64.rpm
  7. 输入 sudo rpm -i mssql-tools-17.1.0.1-1.x86_64.rpm

  8. 按照Microsoft指令的其余部分进行操作,就像您的问题一样.

  9. 现在你应该可以在python中使用ODBC和pyodbc了.

更新:请看看@KnudLarsen的评论!