2011-01-12 5 views
1

Fedora 14 x64에로드 된 mysql, pyodbc, python 2.7을 실행중인 Im.odbc를 통해 python으로 mysql에 연결하는 방법

ODBCINST.INI은 다음과 같습니다

# Example driver definitions 

# Driver from the postgresql-odbc package 
# Setup from the unixODBC package 
#[PostgreSQL] 
#Description = ODBC for PostgreSQL 
#Driver  = /usr/lib/psqlodbc.so 
#Setup  = /usr/lib/libodbcpsqlS.so 
#Driver64 = /usr/lib64/psqlodbc.so 
#Setup64 = /usr/lib64/libodbcpsqlS.so 
#FileUsage = 1 


# 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 

ODBC.INI은 다음과 같습니다

[MySQL] 
Driver = MySQL 
Database = mysql 
Server = localhost 
Socket = /var/lib/mysql/mysql.sock 
User = rooter 
Password = sshh 

Mysql.sock이 비어? /var/lib/mysql/mysql.sock는 0.B

파이썬 스크립트가 있습니다

import pyodbc 

#pyodbc.pooling = False 
conn = pyodbc.connect('DRIVER={MySQL};SOCKET=/var/lib/mysql/mysql.sock;UID=rooter;PWD=sshh') 

csr = conn.cursor() 
csr.execute("SET GLOBAL event_scheduler = ON") 
csr.close() 

conn.close() 
del csr 

내가 연결 얻을 isql을 사용하여, 위의 스크립트와 연결하는 것 질수!

MyERROR의 메시지 : 승리 XPx64에

Traceback (most recent call last): 
    File "/CCX/Py/MySql Event OFF.py", line 4, in <module> 
    conn = pyodbc.connect('DRIVER={MySQL};SOCKET=/var/lib/mysql/mysql.sock;UID=rooter;PWD=sshh') 
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)') 

,

#cxn = MySQLdb.connect (host = "localhost",user="rooter",passwd ="sshh") 

오류 메시지 : odbcinst.ini하고 odbc.ini 비교

File "C:\Python26\lib\site-packages\MySQLdb\__init__.py", line 19, in <module> 
    import _mysql 
ImportError: DLL load failed: %1 is not a valid Win32 application. 
+0

오류 메시지가 무엇입니까? –

+0

위 참조, 위의 – Merlin

답변

1

당신은, odbc.ini에서 드라이버 홀수 값을 표시 여기 동적 라이브러리가 있어야합니다 (제 생각 엔).

use direct mysql connection (odbc 제외) (테스트하지)

import _mysql 

conn = _mysql.connect(host="localhost", user="rooter", 
         password="sshh", db="mysql") 
conn.query("SET GLOBAL event_scheduler = ON") 
conn.close() 

+0

은 결함이있는 직접 연결이었습니다. – Merlin

+0

@ user428862, 위의 것은 odbc bridge connect이며, 직접적인 연결은 아닙니다 .. –

+0

OK, 내 cxn 문자열은 무엇입니까? 나는 다음과 같은 것을 가지고있다. cxn = pyodbc ('DSN = MySQL')도 작동한다. – Merlin

1

파일 "C : \ Python26 \ lib 디렉토리의 \ 사이트 - 패키지 \ MySQLdb__init는 __ 평." ImportError를 수입 _mysql에서, 라인 19 : DLL로드 실패 : % 1 올바른 Win32 응용 프로그램이 아닙니다. libguide40.dll, libmmd.dll, libmySQL.dll 파일 는 C에 3 개 개의 파일을 넣어 : 우리가 3 개 파일을 다운로드해야합니다 Python26 & & 창 경우

\ Python26 \ lib 디렉토리 \ 사이트 - 패키지 또한 3 개 개의 파일을 넣어 C에 : \ WINDOWS \ system32를 다음 시스템 다시 시작

경우 Python27 & & 창 설치 프로그램 모듈이주의 버전 MySQL을 - 파이썬 - 1.2.3.win32-py2.7.exe MySQL을 -python-1.2.4.win32-py2.7.exe 2 개의 버전 중 하나 테스트 http://mysql-python.sourceforge.net/MySQLdb.html#some-mysql-examples

코드 : 당신이

1

소스가 필요하다에

import _mysql 

conn=_mysql.connect(host="localhost", user="root", passwd="***", db="test") 
conn.query("select * from test_table") 
result = conn.use_result() 

print result.fetch_row() 

fetch_row() 함수는 두 개의 매개 변수가 있습니다

  1. maxrows 행의 최대 수를 반환 제한합니다.
  2. how : how = 0 인 경우 튜플을 반환하고 how = 1 인 경우 사전을 반환합니다.

예를 들어 result.fetch(maxrows=5, how=1)은 키가 열 이름이고 값이 열 값인 사전의 배열 (최대 크기 : 5)을 반환합니다.

+0

이 질문은 몇 살입니까? – Merlin

관련 문제