web-dev-qa-db-ja.com

pyodbc + MySQL + Windows:データソース名が見つからず、デフォルトのドライバーが指定されていません

Pyodbcを使用してWindows Server 2008 R2 localhost上のMySQL 5.6に接続しようとしています。 ODBCコネクターを含む、ローカルホスト上のMySQLインスタンスの完全インストールを使用しました。リモートSQL Serverインスタンスに美しく接続していますが、私の人生では取得できません。ローカルのMySQLインスタンスに接続するために使用 connectionstrings.comからのガイド を参考として使用しています。

ここにいくつかのコードがあります:

import pyodbc

def create_mssql_conn():
    return pyodbc.connect(r'Driver={SQL Server};Server=MSSQLSRV;Database=ecomm;Trusted_Connection=yes;')

def create_mysql_conn():
    return pyodbc.connect(r'Provider=MSDASQL;Driver={MySQL ODBC 5.6 UNICODE Driver};Server=127.0.0.1;Database=ecomm;User=root;Password=myP@$$w0rd;Option=3;')

# conn = create_mssql_conn() # This one works
conn = create_mysql_conn() # This one breaks
cursor = conn.cursor()
cursor.execute('SELECT * FROM inventory')

while 1:
    row = cursor.fetchone()
    if not row:
        break
    print row

ここにエラーがあります:

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

Provider=MSDASQL;は、接続文字列でANSIUNICODEに変更します。助言がありますか?

10
sct.chang

私は同様の問題を抱えていました。私はWindows 8とmysqlを使用しています。

私が問題を解決した方法は、

コントロールパネル>システムとセキュリティ>管理ツール> ODBCデータソース

お使いのコンピュータに応じて、32ビット版または64ビット版のいずれか。

次に、システムDNSファイルをクリックします。 MySQLドライバーが表示されない場合は、[追加]をクリックする必要があります。リストが表示され、そのリストからMySQLドライバーを選択します。

私にとってそれはMySQLでしたODBC 5.3 ANSI(彼らはユニコードドライバーも持っています)。完了をクリックします。そうしたら、コード内の接続ラインを、対応するドライバーに変更する必要がありますちょうど記入した。

例:

def create_mysql_conn():

 return pyodbc.connect(r'Driver={MySQL ODBC 5.3 ANSI Driver};Server=MSSQLSRV;Database=ecomm;Trusted_Connection=yes;')

これはうまくいくはずです、または少なくとも私が試みたすべてのものでさまざまな種類のエラーを受け取っていたため、接続の問題は解決しました。これが私の問題を解決したものです。

16
Thomas Johnson

Win64には2つのODBC環境:32ビットと64ビットがあり、Python 32ビットまたはPython 64ビット。使用するPythonのバージョンを確認し、適切なバージョンのodbcad32.exe(32ビットバージョンはSysWoW64ディレクトリにあります)を使用してSystemDSNを作成します。SystemDSNを使用データベースに接続できるかどうかを確認してから、PythonコードからDBに接続してみてください。

あなたは私のコードレシピを介してODBC pyodbcに利用可能なデータソースをリストすることができます: https://code.activestate.com/recipes/578815-printing-list-of -odbc-data-sources-with-pyodbc-mod /

7
Michał Niklas

管理ツールとODBCデータソースに移動します。DNSファイルをクリックする必要があります。MicrosoftAccessとExcelが利用可能な唯一のデータソースであるため、追加する必要があります。 SQL Server。鉱山はSQL Server 2008 R2であり、これまでのところ機能しています。

0
gbade_

「pyodbc.Error:( 'IM002'、 '[IM002] [Microsoft] [ODBC Driver Manager] Data source name not found and no default driver specified(0)(SQLDriverConnect)')」というエラーの場合

64ビットシステムがあるため、「Microsoft Accessデータベースエンジン2010再頒布可能64ビット」をインストールし、MS AccessデータベースのディレクトリにDSNを追加しました。これは現在動作しています。 DSNを作成してPythonに接続する方法のビデオのリンクは次のとおりです。 https://www.youtube.com/watch?v=zw9P2wSnoIo

0
viveklande