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;
は、接続文字列でANSI
をUNICODE
に変更します。助言がありますか?
私は同様の問題を抱えていました。私は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;')
これはうまくいくはずです、または少なくとも私が試みたすべてのものでさまざまな種類のエラーを受け取っていたため、接続の問題は解決しました。これが私の問題を解決したものです。
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 /
管理ツールとODBCデータソースに移動します。DNSファイルをクリックする必要があります。MicrosoftAccessとExcelが利用可能な唯一のデータソースであるため、追加する必要があります。 SQL Server。鉱山はSQL Server 2008 R2であり、これまでのところ機能しています。
「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