1

mysql、pyodbc、python2.7をFedora14x64にロードして実行しています。

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があります

Pythonスクリプトは次のとおりです。

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 msg:

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

Win XPx64では、

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

エラーメッセージ:

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.
4

3 に答える 3

2

のドライバーの値を比較するodbcinst.iniと、ここにダイナミックライブラリがあるはずです(私は思います)。odbc.iniodbc.ini

そして、なぜ直接mysql接続(odbcなし)を使用しないのですか?:

import _mysql

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

(未検証)

于 2011-01-12T05:39:18.407 に答える
1

ファイル"C:\ Python26 \ lib \ site-packages \ MySQLdb__init __。py"、19行目、import _mysql ImportError:DLLの読み込みに失敗しました:%1は有効なWin32アプリケーションではありません。

Python26 && Windowsの場合、3つのファイルをダウンロードする必要があります:libguide40.dll、libmmd.dll、libmySQL.dllは3つのファイルをC:\ Python26 \ Lib \ site-packagesに配置し、3つのファイルをC:\ Windows\system32に配置します。システムを再起動します

モジュールをセットアップするときにPython27&&Windowsの場合、バージョンMySQL-python-1.2.3.win32-py2.7.exeMySQL-python-1.2.4.win32-py2.7.exeに注意してください。2つのバージョンのいずれかがあなたが必要

于 2013-11-01T03:31:36.847 に答える
1

ソース: http: //mysql-python.sourceforge.net/MySQLdb.html#some-mysql-examples

テストされたコード:

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()関数には2つのパラメーターがあります。

  1. maxrows返される行の最大数を制限します。
  2. how:how = 0の場合はタプルを返し、how=1の場合は辞書を返します。

たとえばresult.fetch(maxrows=5, how=1)、キーが列名で値が列値である辞書の配列(最大サイズ:5)を返します。

于 2015-01-08T09:19:37.850 に答える