pyodbc + MySQL + Windows: nom de source de Données introuvable et de pilote non spécifié
Je suis en train d'essayer de se connecter à MySQL 5.6 sur un Serveur Windows 2008 R2 localhost avec pyodbc. J'ai utilisé l'installation complète de l'instance MySQL sur le localhost, y compris le connecteur ODBC. J'ai la connexion à une instance distante de SQL Server à merveille, mais pour la vie de moi je n'arrive pas à se connecter à MySQL local de l'instance. Je me sers de ce guide de connectionstrings.com comme référence.
Voici un code:
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
Voici l'erreur:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
J'ai tout essayé, à partir de l'ajout de Provider=MSDASQL;
à l'évolution de la ANSI
à UNICODE
dans la chaîne de connexion. Des suggestions?
Vérifier que le "type d'installation" de l'installation de MySQL Connector/ODBC correspond au "type d'installation" de la version de Python que vous utilisez: ils doivent être en 64-bits ou 32-bits. Aussi, avez-vous envisagé d'essayer MySQL Connector/Python?
C'est drôle que vous suggèrent le Python connecteur. En raison de contraintes de temps, c'est exactement ce que j'ai fait faire une date limite. Je voulais juste pyodbc de travailler parce que je l'avais déjà importé d'extraire des données à partir de SQL Server. Je vais regarder dans le 'nombre de bits d'affaires un peu plus tard.
C'est drôle que vous suggèrent le Python connecteur. En raison de contraintes de temps, c'est exactement ce que j'ai fait faire une date limite. Je voulais juste pyodbc de travailler parce que je l'avais déjà importé d'extraire des données à partir de SQL Server. Je vais regarder dans le 'nombre de bits d'affaires un peu plus tard.
OriginalL'auteur sct.chang | 2015-02-02
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire. Je suis avec windows 8, et mysql.
La façon dont j'ai résolu le problème a été en allant dans mon
Soit 32 bits ou la version 64 bits en fonction de votre ordinateur.
Puis vous cliquez sur le Système de fichier DNS. Si vous ne voyez pas de driver MySQL, vous devez cliquez sur AJOUTER. Il affiche une liste, à partir de cette liste, sélectionnez le pilote MySQL.
Pour moi, c'était ODBC de MySQL 5.3 ANSI(ils ont un pilote unicode aussi). Cliquez sur terminer. Une fois que vous faites cela, alors vous devez changer votre ligne de connexion dans votre code pour le Pilote correspondant que vous venez de remplir.
Ex:
Cela devrait fonctionner, ou, au moins, il a résolu mon problème de connexion car j'ai été faire toutes sortes d'erreurs avec tout ce que j'ai essayé. C'est ce qui a résolu le problème pour moi.
OriginalL'auteur Thomas Johnson
Dans Win64 il y a deux ODBC environnements: 32 et 64 bits et vous pouvez travailler avec Python 32 bits ou Python 64 bits. Vérifier quelle est la version de Python que vous utilisez, puis utiliser la bonne version de
odbcad32.exe
(version 32 bits est situé dans leSysWoW64
répertoire) pour créer SystemDSN. Avec SystemDSN vous pouvez vérifier si vous pouvez vous connecter à la base de données. Puis essayez de vous connecter à la DB à partir d'un code Python.Vous pouvez afficher la liste des sources de données ODBC disponible à
pyodbc
via mon code recette: https://code.activestate.com/recipes/578815-printing-list-of-odbc-data-sources-with-pyodbc-mod/C:\Windows\SysWOW64\odbcad32.exe
.OriginalL'auteur Michał Niklas
La tête aux Outils d'Administration et les Sources de Données ODBC. Vous devez cliquer sur le fichier DNS. Très probablement, vous verriez Microsoft Access et excel comme les seules sources de données disponibles, de sorte que vous devez ajouter à votre Serveur SQL server. Le mien était SQL Server 2008 R2, et jusqu'à présent, il a travaillé.
OriginalL'auteur gbade_