Je suis incapable de vous connecter à MySQL DB à l'aide de PyodBC.
Voici un extrait de mon script: p> i obtenir cette erreur sur pyodbc.connect ( ) Ligne: P> pyodbc.error: ('IM002', '[IM002]
[Microsoft] [gestionnaire de pilotes ODBC]
Nom de la source non trouvé et non par défaut
Pilote spécifié (0)
(Sqldriverconnecw) ') p>
BlockQuote> J'ai une autre question concernant cette erreur (et des scripts Python en général). Lorsque j'exécute cela comme un script, il échoue silencieusement (je m'attendais à une trace de la pile). Je dois taper chaque ligne en manuellement pour trouver où l'erreur s'est produite. P> Je suis un peu paresseux pour l'instant (pas de manutention d'exception) - est-ce que ce comportement normal d'un script Python sans manipuler des exceptions pour échouer silencieusement ? P> Je n'utilise pas MySQLDB car j'utilise déjà PYODBC pour extraire mes données d'une autre source (MS Access). Ok, pas une bonne raison - mais je suis déjà aux prises avec Pyodbc et je n'ai pas vraiment envie de faire des lutter avec une autre bibliothèque / module / paquet (quel que soit son appelé en python) pour un travail "un off". Je veux juste déplacer mes données de diverses sources de données dans l'environnement Windows à MySQL sous Linux. Une fois sur Linux, je serai de retour sur Terra Firma. P> C'est l'ensemble du "script" juste là. Je viens d'enregistrer le code ci-dessus dans un fichier avec une extension .PY, et je exécute Python myscript.py à la ligne de commande. Je cours sur ma machine XP p> p>
6 Réponses :
MySQLDB (ou OurSQL) et PYODBC ont la même interface ( dB-API 2 ), vous n'êtes pas obligé de traiter les problèmes de ODBC si vous utilisez le premier. Je vous recommande vivement d'envisager d'utiliser MySQLDB (ou OurSQL) à la place. P>
Mysqldb ne s'installa pas sous Windows. L'auteur accepte à peu près que c'est cassé / non pris en charge sur Windows.
J'ai mentionné une autre option.
Aussi, ceci: Stackoverflow.com/Questtions/645943/MYSQL -Pour-python-in-windo ws
premier fort>, selon le docs officiels , si vous souhaitez vous connecter sans créer de DSN, vous devez spécifier l'option = 3 dans la chaîne de connexion: si cela omet de travailler, je résolvant d'autres problèmes en créant un DSN. P> seconde strong>, aucun python ne doit pas défailler silencieusement. Si tel est le cas lorsque vous exécutez votre script, il y a quelque chose d'autre. p> p>
Pour une raison étrange, je reçois la trace de la pile maintenant à la console. Script toujours dosent fonctionnent avec la chaîne de connexion [modifiée] que vous avez suggérée. J'ai trouvé une solution cependant. J'ai installé MySQLDB sur ma machine Linux, donc je vais simplement copier mon fichier CSV sur ma machine Linux et faire l'importation de données sur ma machine Linux :(
Need besoin d'installer MySQL-connecteur-ODBC-3.51.28-Win32.msi.
et pyodbc-2.1.7.win32-py2.7.exe. P>
Bien sûr, vous avez Prêt à installer MySQL et Python 2.7. P>
Exemple: P>
import pyodbc cndBase = pyodbc.connect("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; PORT=3306;DATABASE=nameDBase; UID=root; PASSWORD=12345;") ptdBase = cndBase.cursor() query_str = 'SELECT* FROM nameTabla;' rows = ptdBase.execute(query_str) for rw in rows: print list(rw)`enter code here`
'dbase' n'est pas défini. Voulez-vous dire 'ptdbase'?
J'ai eu cette même erreur alors je suis allé sur toute la version que j'utilisais pour la connexion. C'est ce que j'ai découvert: p>
pour Python 2.7 32 bits: - pyodbc doit être 32bits - Le pilote DB doit être de 32 bille. (Microsoft Access devrait être aussi 32 bits) P>
Pour ceux qui utilisent la version 64 bits. Vous devriez vérifier que tout est aussi 64 bits. P>
Dans mon cas, j'essayais de connecter à une DB Oracle DB et Microsoft Access DB, donc je devais faire correspondre les composants suivants correspondre à la version Architection: P>
C'était pour moi !! Merci beaucoup, cela aurait pu être encore 10 heures gaspillée ... J'ai juste besoin d'installer la version 32bit du pilote et le DSN 64 bits est devenu 32/64 et il se connectait.
Quelle commande utilisez-vous pour trouver si ses 32 ou 64 bits pour Pyobc, Python, DB Driver, etc.?
est que votre nom de conducteur n'est-ce pas?
Vous pouvez vérifier votre nom de pilote dans strong>
Windows -> Panneau de configuration -> Système et sécurité -> Outils d'administration -> Sources de données ODBC -> Onglet Driver Strong>
puis copiez le nom de la rivière sur le premier paramètre fort> p> comme p> et mon problème résolu p> Ou vous ne pouvez pas installer le pilote et l'étape est simple. p> p>
Est-il possible de se connecter à un serveur distant au lieu de localhost? J'utilise Server = 10.0.1.235 en tant que version IP de Server MySQL distante, elle se connecte toujours au localhost 10.0.1.249. Je ne sais pas pourquoi.
Je reçois la même erreur. Il semblait que le pilote que j'utilisais pour faire la connexion n'était pas le pilote installé dans mon système. Tapez ODBC sur Windows Exécuter et sélectionnez Source de données ODBC (32/64) en fonction de l'endroit où vous avez installé le pilote. À partir de là, cliquez sur le système DSN et cliquez sur Ajouter. De là, vous pouvez voir le pilote MySQL installé dans votre système. Utilisez le pilote ANSI dans votre code où vous effectuez la connexion. p>
Pourquoi n'utilisez-vous pas le pilote MySQLDB?
"Quand je cours comme un script"? Qu'avez-vous réellement fait? S'il vous plaît fournir une idée de ce que vous avez fait. Quel système d'exploitation? Quel shell?
"Je n'ai pas vraiment envie d'avoir à lutter avec une autre bibliothèque / module / paquet (quel que soit son appelé en python) pour un" One Off "" "qui viole la vue du monde de Python. Il semble que tout ce que nous ayons jamais effectué est de télécharger de nouveaux forfaits et de la lutte avec eux. L'utilisation d'un emballage est importante pour son objectif.
pyodbc code> ne peut probablement pas se connecter à MySQL. Point final.
La meilleure façon de voir les pilotes ODBC disponibles pour votre application Python est de vérifier la liste renvoyée par appelant
pyodbc.drivers () code>.