Amazon ec2 安装unixODBC>;=适用于msodbcsql17的Linux Redhat/CentOS上的2.3.1

Amazon ec2 安装unixODBC>;=适用于msodbcsql17的Linux Redhat/CentOS上的2.3.1,amazon-ec2,centos,redhat,pyodbc,unixodbc,Amazon Ec2,Centos,Redhat,Pyodbc,Unixodbc,我尝试使用CentOS/RedHat(Linux)在AWS EC2上安装msodbcsql17 以下是我在Microsoft()中遵循的步骤: 该指令在安装msodbcsql17之前一直有效。我收到以下错误消息: Error: Package: msodbcsql17 (packages-microsoft-com-prod) Requires: unixODBC >= 2.3.1 Available: unixODBC-2.2.14-14.7.

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

以下是我在Microsoft()中遵循的步骤:

该指令在安装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

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

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

  • 从任何源下载unixODBC>=2.3.1,格式为rpm()
  • 从Microsoft以rpm的形式下载msodbcsql17和mssql工具()(msodbcsql17-17.1.0.1-1.x86_64.rpmmssql-tools-17.1.0.1-1.x86_64.rpm(在我的例子中)
  • 通过ftp(如FileZilla)将文件传输到EC2实例
  • 使用EC2终端,进入上传文件的目录
  • 输入
    sudo rpm-i unixODBC-2.3.1-11.el7.x86_64.rpm
    安装必要的版本(可能需要将版本号更改为上载文件的版本号)
  • 输入
    sudo rpm-i msodbcsql17-17.1.0.1-1.x86_64.rpm
  • 输入
    sudo rpm-i mssql-tools-17.1.0.1-1.x86_64.rpm

  • 按照Microsoft说明的其余部分进行操作,如您的问题中所述

  • 现在,您应该能够使用ODBC,例如python中的pyodbc
  • 您也可以使用
    yum安装
    ,而不是
    rpm-i



    更新:请看@KnudLarsen的评论

    下面是我的docker文件中的一个片段,展示了如何在amazon linux上安装:

    RUN curl http://mirror.centos.org/centos/7/os/x86_64/Packages/unixODBC-2.3.1-14.el7.x86_64.rpm > /tmp/unixODBC-2.3.1-14.el7.x86_64.rpm
    RUN yum -y install /tmp/unixODBC-2.3.1-14.el7.x86_64.rpm 
    RUN curl http://mirror.centos.org/centos/7/os/x86_64/Packages/unixODBC-devel-2.3.1-14.el7.x86_64.rpm > /tmp/unixODBC-devel-2.3.1-14.el7.x86_64.rpm 
    RUN yum -y install /tmp/unixODBC-devel-2.3.1-14.el7.x86_64.rpm 
    
    RUN curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
    RUN ACCEPT_EULA=Y yum -y install msodbcsql17
    
    如果您想要pyodbc,请提供奖励:

    RUN yum -y install gcc72-c++ \
        && yum -y install python36-devel \
        && yum -y install zip \
        && yum clean all
    RUN python3.6 -m pip install --upgrade pip 
    RUN python3.6 -m pip install pyodbc
    

    Sean Stayn:Better=
    #yum安装下载/unixODBC-2.3.1-11.el7.x86_64.rpm
    。也就是说,
    rpm
    命令不处理依赖项。除此之外,默认rpm命令也是yum使用的
    rpm-Uvh
    @KnudLarsen谢谢您的评论!我是Linux的初学者,但这是唯一的办法,我可以解决我的问题。我已经更新了我的答案,并暗示了您的评论,希望我们可以帮助其他用户了解您的其他信息。
    RUN yum -y install gcc72-c++ \
        && yum -y install python36-devel \
        && yum -y install zip \
        && yum clean all
    RUN python3.6 -m pip install --upgrade pip 
    RUN python3.6 -m pip install pyodbc