web-dev-qa-db-ja.com

EC2インスタンスのAmazon LinuxにSQL Server用のODBCドライバー13をインストールする

問題:

PHPコードからMSSQLストアドプロシージャにアクセスして実行する必要があります。

バージョンの詳細:

ローカル開発マシン-Windows 10 with XAMPP with PHP 7

本番システム-Amazon AWS AMI Linux with PHP 5.3.2

必要なもの:

Odbc接続を使用して、ローカルサーバーとライブサーバーのMSSQLにアクセスしたい。

LIVEサーバーで試した内容:

LIVEサーバーがパッケージと互換性があり、必要なパッケージを正しくインストールできることを確認したい。

したがって、次の手順で開始しました:

1)以下のリンクを調べたところ、より高速なデータアクセスのためにODBCを使用する必要があることがわかりました: https://stackoverflow.com/a/31105561

2)以下のように、Amazon Linuxに次のODBCドライバをインストールしようとしました:

(RHEL 6インストーラーがAmazon Linuxでも動作すると想定しています。正しくない場合はお知らせください)

  • Microsoft ODBC SQL Server用ドライバー13.1-Windows + Linux

Sudo su curl packages.Microsoft.com/config/rhel/6/prod.repo> /etc/yum.repos.d/mssql-release.repo

出口

Sudo yumがunixODBCを削除して#競合を回避

Sudo ACCEPT_EULA = Y yum install msodbcsql-13.0.1.0-1 mssql-tools

しかし、インストーラーは以下のエラーを表示して失敗します:

Error: msodbcsql conflicts with unixODBC-utf16-2.3.1-1.x86_64
Error: Package: msodbcsql-13.1.4.0-1.x86_64 (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

3)したがって、 http://www.unixodbc.org/ を使用してunixODBCをインストールしようとしました

- Downloaded the package via curl
- gunzip unixODBC*.tar.gz
- tar xvf unixODBC*.tar

次に、次のコマンドを使用して同じものをインストールします。

./configure
make
make install 

4)httpdサービスを再起動し、ステップ2を再試行しましたが、インストーラーはポイント2で述べたのと同じエラーで失敗しました.

ローカルマシンで試したこと:

  1. Microsoftの.msiファイルをダウンロードODBC SQL Server用ドライバー13.1-Windows + Linux
  2. 私のマシンに同じものをインストールし、xampp Apacheを再起動しました。しかし、まだUncaught PDOException: could not find driver

[〜#〜] update [〜#〜]:php.iniに拡張DLLを追加することでローカルシステムの問題を解決し、サーバーを再起動しました。

LIVE構成で何を逃したかを誰かに教えてもらえますか?

2
Mrudang Vora

ソリューションへのアプローチ

インストールの直接リンクが機能していなかったため、以下の行を使用してオフラインインストール用のrpmファイルをダウンロードしました。

_Sudo mkdir /tmp/RedHat6Packages_

_Sudo curl https://packages.Microsoft.com/rhel/6/prod/msodbcsql-13.1.4.0-1.x86_64.rpm > /tmp/RedHat6Packages/msodbcsql-13.1.4.0-1.x86_64.rpm_

_Sudo curl https://packages.Microsoft.com/rhel/6/prod/mssql-tools-14.0.4.0-1.x86_64.rpm > /tmp/RedHat6Packages/mssql-tools-14.0.4.0-1.x86_64.rpm_

次のコマンドを使用してオフラインでインストールしようとしました:_cd /tmp/RedHat6Packages/_ _Sudo yum localinstall msodbcsql-13.1.4.0-1.x86_64.rpm_ _Sudo yum localinstall mssql-tools-14.0.4.0-1.x86_64.rpm_

しかし、同じエラーが発生していました:error: Failed dependencies: libodbcinst.so.2()(64bit) is needed by msodbcsql-13.1.4.0-1.x86_64 unixODBC >= 2.3.1 is needed by msodbcsql-13.1.4.0-1.x86_64パッケージをチェックするコマンドが見つかりました:_Sudo yum provides /usr/lib64/libodbcinst.so.2_

これは次の警告を示しました:

_Loaded plugins: priorities, update-motd, upgrade-helper
2 packages excluded due to repository priority protections
unixODBC-2.2.14-14.7.amzn1.x86_64 : A complete ODBC driver manager for Linux
Repo        : amzn-main
Matched from:
Filename    : /usr/lib64/libodbcinst.so.2    

unixODBC-utf16-2.3.1-1.x86_64 : ODBC driver manager with UTF16 character conversion enabled by default
Repo        : packages-Microsoft-com-prod
Matched from:
Filename    : /usr/lib64/libodbcinst.so.2
_

直接ソリューションにジャンプします

以下のリンクを確認しました:

それはどういう意味ですか:パッケージはリポジトリの優先保護のために除外されました

_/etc/yum/pluginconf.d/priorities.conf_を編集して_enabled = 0_を設定し、優先度を無効にしました

上記と同じコマンドを使用してドライバーをインストールできました:_cd /tmp/RedHat6Packages/_ _Sudo yum localinstall msodbcsql-13.1.4.0-1.x86_64.rpm_ _Sudo yum localinstall mssql-tools-14.0.4.0-1.x86_64.rpm_

まだ拡張ファイルの場所を把握できませんが、この質問の目的として、他の質問( MSSQLのインストール後の次のステップODBC 13.1 on Amazon EC2 Linux ))を作成しました解決しました。

Linuxの初心者(特にWindowsから移行した人)として、上記の解決策を見つけるのは本当に困難でした。それが誰かを助けることを願っています!!

1
Mrudang Vora

Amazon Linux AMIで機能するコマンドは次のとおりです。

curl https://packages.Microsoft.com/config/rhel/7/prod.repo | Sudo tee /etc/yum.repos.d/msprod.repo1
Sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
Sudo yum info unixODBC*
Sudo yum install mssql-tools unixODBC-devel
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' | tee -a ~/.bash_profile && source ~/.bash_profile

ソース: Install sqlcmd and bcp the SQL Server command-line tools on Linux


それ以外の場合は、このように競合しない古いバージョンをインストールしてみてください post

Sudo ACCEPT_EULA=Y yum install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1
0
kenorb