问题
We need to connect to MySQL from Python, using pyodbc. After installing pyodbc, this is what we get:
pyodbc.connect("DRIVER={MySQL};SERVER=localhost;DATABASE=HAGC;USER=user;PASSWORD=pass;OPTION=3;") Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib64/libmyodbc5.so' : file not found (0) (SQLDriverConnect)")
So I tried two things: 1- edit /etc/odbcinst.ini. That did not work. 2- create a symlink '/usr/lib64/libmyodbc5.so' pointing to /usr/lib64/libmyodbc5w.so
Testing from Python:
pyodbc.connect("DRIVER={MySQL};SERVER=localhost;DATABASE=HAGC;USER=myuser;PASSWORD=mypassword")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('08S01', "[08S01] [unixODBC][MySQL][ODBC 5.3(w) Driver]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (2002) (SQLDriverConnect)")
This is the original /etc/odbcinst.ini:
[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 ODBC 5.3 Unicode Driver]
Driver=/usr/lib64/libmyodbc5w.so
UsageCount=1
[MySQL ODBC 5.3 ANSI Driver]
Driver=/usr/lib64/libmyodbc5a.so
UsageCount=1
来源:https://stackoverflow.com/questions/40939408/connecting-to-mysql-using-pydobc