2014-10-31 73 views
1

我使用PHP PDO來連接MySql Db,它很好用。我有類似:爲pyodbc創建一個類似於PHP PDO的DSN。可能嗎?

$dsn = 'mysql:host=localhost;dbname=database_name'; 
$user_db = 'admin'; 
$password = 'password'; 

$pdo = new PDO($dsn, $user_db, $password); 

現在我需要從蟒蛇腳本加載同一個數據庫中,我必須使用pypodbc模塊

但我發現了一些問題:

如果我這樣做(在Python上):

pyodbc.connect('DRIVER={MySQL};SERVER=localhost;DATABASE=database_name;UID=admin;PWD=password;') 

我在日誌中遇到錯誤:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib64/libmyodbc5.so' : file not found (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 

我嘗試添加的包使用mysql-connector-ODBC通過YUM和我得到mysql-連接器odbc.x86_64 0:5.1.5r1144-7.el6

,然後運行我的腳本我有一個新的錯誤:

/usr/local/bin/python2.7: relocation error: /usr/lib64/libmyodbc5.so: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient_r.so.16 with link time reference

看來這個版本不與MySQL兼容,我有:37年5月5日-CLL - MySQL社區服務器(GPL)

我做了YUM REMOVE即可恢復到以前的conf。

現在呢?有什麼建議麼 ? 謝謝!

我的配置:

我的服務器:CENTOS 6.6 x86_64的Virtuozzo的 MySQL的:37年5月5日-CLL - MySQL社區服務器(GPL)

回答

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;') 

作品!是啊!

相關問題