Gor*_*son 4 python ubuntu pymssql
在Ubuntu上配置带有SSL支持的pymssql所需的步骤是什么,所以我可以连接到需要加密连接的SQL Server实例(例如Azure)?
(请参阅Ubuntu 18.04 LTS的这个答案.)
以下是Xubuntu 16.04 LTS x64的全新安装:
第一个挑战是我们从Ubuntu 16.04存储库获得的FreeTDS不支持"开箱即用"的SSL,因此我们需要构建自己的.首先安装python3-pip(还安装了build-essentials,g ++和我们需要的一些其他东西)和libssl-dev(构建具有SSL支持的FreeTDS所需的OpenSSL库)
sudo apt install python3-pip libssl-dev
Run Code Online (Sandbox Code Playgroud)
点击freetds.org上的"稳定版本"链接,下载FreeTDS的源代码.解压缩归档文件,切换到刚创建的目录(例如,freetds-1.00.104),然后执行
./configure --with-openssl=/usr/include/openssl --enable-msdblib
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
检查构建
tsql -C
Run Code Online (Sandbox Code Playgroud)
并确保列出"TDS版本:auto"和"OpenSSL:是".然后tsql用来测试"原始"FreeTDS连接,例如,
tsql -H example.com -p 1433 -U youruserid -P yourpassword
Run Code Online (Sandbox Code Playgroud)
现在安装pymssql.默认情况下,最新版本作为预编译的"wheel"文件提供,不支持加密连接,因此我们需要从pymssql源安装.从pymssql 2.1.4开始,构建过程依赖于Cython,所以首先要做
pip3 install --user Cython
Run Code Online (Sandbox Code Playgroud)
然后呢
pip3 install --user --no-binary pymssql pymssql
Run Code Online (Sandbox Code Playgroud)
构建完成后,安装pymssql.
但是......它还行不通.当我们尝试使用import pymssqlPython时,我们得到了
ImportError:libsybdb.so.5:无法打开共享对象文件:没有这样的文件或目录
因为显然该文件处于"错误"的位置.修复(参考:这里)是在"正确"的位置创建一个指向实际文件的符号链接
sudo ln -s /usr/local/lib/libsybdb.so.5 /usr/lib/libsybdb.so.5
sudo ldconfig
Run Code Online (Sandbox Code Playgroud)
现在pymssql适用于SSL连接.
无论如何,对我来说.
Ubuntu 18.04存储库将安装支持GnuTLS的FreeTDS版本,因此从源代码构建FreeTDS并不是绝对必要的。但是,我们仍然需要从源代码构建pymssql,因为只需执行通常的操作即可
pip3 install --user pymssql
Run Code Online (Sandbox Code Playgroud)
将安装不支持安全连接的预编译“轮子”。相反,我们需要做
sudo apt install python3-pip freetds-dev
pip3 install --user Cython
pip3 install --user --no-binary pymssql pymssql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3769 次 |
| 最近记录: |