【发布时间】:2014-10-31 01:35:49
【问题描述】:
我使用 PHP PDO 连接一个 MySql 数据库,效果很好。我有类似的东西:
$dsn = 'mysql:host=localhost;dbname=database_name';
$user_db = 'admin';
$password = 'password';
$pdo = new PDO($dsn, $user_db, $password);
现在我需要从 python 脚本加载相同的数据库,并且我必须使用 pypodbc 模块
但我遇到了一些问题:
如果我这样做(在 Python 上):
pyodbc.connect('DRIVER={MySQL};SERVER=localhost;DATABASE=database_name;UID=admin;PWD=password;')
我在日志中遇到错误:
pyodbc.Error: ('01000', "[01000] [unixODBC][驱动管理器]无法打开 lib '/usr/lib64/libmyodbc5.so' : 找不到文件 (0) (SQLDriverConnect)")
如果我检查 /etc/odbcinst.ini 我可以看到:
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
我尝试通过 YUM 添加包 mysql-connector-odbc,我得到了 mysql-connector-odbc.x86_64 0:5.1.5r1144-7.el6
然后运行我的脚本我得到了一个新的错误:
/usr/local/bin/python2.7:重定位错误:/usr/lib64/libmyodbc5.so:符号 strmov,版本 libmysqlclient_16 未在文件 libmysqlclient_r.so.16 中定义链接时间参考
这个版本似乎与我拥有的 MySql 不兼容:5.5.37-cll - MySQL Community Server (GPL)
我做了一个 YUM REMOVE 来恢复以前的配置。
现在呢?有什么建议么 ? 谢谢!
我的配置:
我的服务器:CENTOS 6.6 x86_64 virtuozzo MySql:5.5.37-cll - MySQL 社区服务器 (GPL)
【问题讨论】: