Найти - Пользователи
Полная версия: python + ODBC + mySQL
Начало » Python для новичков » python + ODBC + mySQL
1
keizer08
все доброго времени суток.

вопрос у меня достаточно обширен :)

итак перед мной встала задача написать приложение которое бы общалось с БД mySQL и Firebird.
Спустя пары часов нагуглил про PyODBC, скачал, поставил. Потом понял что ему требуются драйвера для работы с базами. Решил начать с mySQL. Скачал вот отсюда дрйвер: http://dev.mysql.com/downloads/connector/odbc/
распаковал, скопировал libmyodbc5.so в /usr/lib/

так же я установил пакет unixodbc, зачем пока что не знаю… но подумал что пригодится)

вот содержимое файлов odbcinst.ini и odbc.ini:

odbcinst.ini (на сколько я понял в этом файле хранятся пути до различных драйверов)
[MySQL]
Driver = /usr/lib/libmyodbc5.so
SETUP = /usr/lib/libmyodbc3S.so
UsageCount = 1

odbc.ini (а в этом настройки подключений к различным базам)
[MYSQL]
Description = MySQL database
Driver = MySQL (это на сколько я понял берется из odbcinst.ini )
Database = /var/lib/mysql/first
Servername = localhost
Username = keizer
Password = Пароль
port = 3306

пытаюсь приконнектиться к базе вот так:

import pyodbc
con = pyodbc.connect("DSN=MYSQL")
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    cnxn = pyodbc.connect("DSN=MYSQL")
Error: ('00000', '[00000] [iODBC][Driver Manager]/usr/lib/myodbc5.so: cannot open shared object file: No such file or directory (0) (SQLDriverConnect)')

и вот так:
import pyodbc
con = pyodbc.connect("UID=keizer;PWD=Пароль;DATABASE=first;DRIVER={MySQL};SERVER=localhost;PORT=3306")
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    con = pyodbc.connect("UID=keizer;PWD=Пароль;DATABASE=first;DRIVER={MySQL};SERVER=localhost;PORT=3306")
Error: ('00000', '[00000] [iODBC][Driver Manager]/usr/lib/myodbc5.so: cannot open shared object file: No such file or directory (0) (SQLDriverConnect)')

P.S. У меня Ubuntu 11.10, python 2.7

кто работал с ODBC очень прошу помощи.
Подскажите в каком месте недогоняю? :(
keizer08
ага… одну ошибку нашел. Банально, но просто неправильно было указано имя драйвера в odbcinst.ini, но легче не стало(((

теперь выдает вот это:
con = pyodbc.connect("UID=keizer;PWD=Пароль;DATABASE=first;DRIVER={MySQL};SERVER=localhost;PORT=3306")
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    con = pyodbc.connect("UID=keizer;PWD=Пароль;DATABASE=first;DRIVER={MySQL};SERVER=localhost;PORT=3306")
Error: ('HY000', '[]
\xf8\x93\x90\x81\x9b\xf8\x94\xb0\x81\xb9\xf8\x93\x80\x81\x91\xf8\x96\xb0\x81\x9d\xf8\x91\x80\x81
\x8f\xf8\x90\xb0\x81\x82\xf8\x8d\x90\x80\xa0\xf8\x8c\x90\x80\xae\xf8\x91\x80\x80\xa0\xf8\x9a\x90
\x81\xb2\xf8\x99\x90\x81\xb6\xf8\x97\x90\x81\xb2\xf8\x98\x90\x81\x86\xf8\x9b\x80\x81\xa9\xf8\x99
\x80\x81\xa5\xf8\x9d\x80\x80\xa0\xf8\x88\x80\x81\xaf\xf8\x98\x90\x81\xb0\xf8\x9c\xb0\x81\xb2\xf8
\x88\x80\x81\xa5\xf8\x9a\x80\x81\xb4\xf8\x88\x80\x81\xa5\xf8\x9b\xa0\x81\xa9\xf8\x9b\xb0\x81\xa3
\xf8\x9a\x90\x81\xad\xf8\x99\xb0\x81\xae\xf8\x98\xb0\x80\xa0\xf8\x9b\xa0\x81\xaf\xf8\x99\x90\x81
\xae\xf8\x9d\x80\x81\xa3\xf8\x9c\xb0\x80\xa0\xf8\x9c\xa0\x81\xb4\xf8\x9b\xa0\x81\xa9\xf8\x8b\xa0
\x81\xa7\xfc\x89\x98\xb0\x80\x80\xfc\x89\x99\x82\x8a\x88w\t (0) (SQLDriverConnect)')

но это мне уже на сколько я понимаю отвечает mySQL

причем когда несколько раз подряд пытаешься создать коннект к базе длинна сообщения “Error” меняется.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB