我使用 PHP PDO 连接 MySql Db,效果很好。我有类似的东西:
$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)&#34)
如果我检查/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社区服务器(GPL)
我做了YUM REMOVE以恢复以前的conf。
现在?有什么建议 ?的谢谢!
我的配置:
我的服务器:CENTOS 6.6 x86_64 virtuozzo MySql:5.5.37-cll - MySQL社区服务器(GPL)
答案 0 :(得分:1)
最后我修好了!
yum install unixODBC-devel
yum install mysql-connector-odbc
yum install openssl098e
而不是:
rpm -ivh libmysqlclient16-5.1.69-1.w5.x86_64.rpm
现在
pyodbc.connect('DRIVER={MySQL};SERVER=localhost;DATABASE=database_name;UID=admin;PWD=password;')
作品!耶!