Utilisation et installation de mysql.db avec python

[Résolu/Fermé]
Signaler
Messages postés
728
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
19 septembre 2021
-
Messages postés
728
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
19 septembre 2021
-
Bonjour,

Je voudrais utiliser mysql avec python.
Je suis sur un pc Linux Ubuntu 14.04 x64 LTS, et j'utilise Python 2.7.6.

Afin d'utiliser mysql, j'ai dû l'installer comme ceci :
laurent@Laurent-Bureau:~$ sudo apt-get install python-mysqldb 
[sudo] password for laurent:
no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
linux-headers-3.13.0-37 linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39 linux-headers-3.13.0-39-generic
linux-image-3.13.0-37-generic linux-image-3.13.0-39-generic
linux-image-extra-3.13.0-37-generic linux-image-extra-3.13.0-39-generic
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Paquets suggérés :
python-egenix-mxdatetime python-mysqldb-dbg
Les NOUVEAUX paquets suivants seront installés :
python-mysqldb
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 55,4 ko dans les archives.
Après cette opération, 196 ko d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ trusty/main python-mysqldb amd64 1.2.3-2ubuntu1 [55,4 kB]
55,4 ko réceptionnés en 0s (128 ko/s)
Sélection du paquet python-mysqldb précédemment désélectionné.
(Lecture de la base de données... 366300 fichiers et répertoires déjà installés.)
Préparation du décompactage de .../python-mysqldb_1.2.3-2ubuntu1_amd64.deb ...
Décompactage de python-mysqldb (1.2.3-2ubuntu1) ...
Paramétrage de python-mysqldb (1.2.3-2ubuntu1) ...
laurent@Laurent-Bureau:~$




Dans mon code j'ai m'y ceci :
laurent@Laurent-Bureau:~$ cat -n  /home/laurent/python/sql/sql-1.py
1 #!/usr/bin/python
2
3 import MySQLdb
4
5 # /home/laurent/python/sql/sql-1.py
6
7 db = MySQLdb.connect("localhost","fel","passbd","userbd" )
8 print "db : ", db
9 print
10
11 # prepare a cursor object using cursor() method
12 cursor = db.cursor()
13
14 # execute SQL query using execute() method.
15 cursor.execute("SELECT VERSION()")
16
17 # Fetch a single row using fetchone() method.
18 data = cursor.fetchone()
19
20 print "Database version : %s " % data
21
22 # disconnect from server
23 db.close()
laurent@Laurent-Bureau:~$


Quand j'exécute mon fichier python, j'ai ce message :
laurent@Laurent-Bureau:~$ python /home/laurent/python/sql/sql-1.py
Traceback (most recent call last):
File "/home/laurent/python/sql/sql-1.py", line 7, in <module>
db = MySQLdb.connect("localhost","fel","passbd","userbd" )
File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'fel'@'localhost' (using password: YES)")
laurent@Laurent-Bureau:~$


Comment faire ?

Merci.

2 réponses

Salut, python-mysqldb semble n'être qu'une interface vers mysql donc il faut:
-qu'un serveur mysql soit installé
-que la base de donnée "userbd" soit crée
-un utilisateur "fel" de cette base de donnée avec le mot de passe "passbd" (que tu peux changer dans le script).
Messages postés
728
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
19 septembre 2021
13
Bonjour,

Oui mysql est bien installé et accessible depuis phpmyadmin.
J'ai bien créé la basse de données fel dans phpmyadmin.
C'est moi qui est fait l'erreur.

J'ai rectifié comme ceci et ça marche :
db = MySQLdb.connect("localhost","userbd","passbd","fel" )


ou

hostbd = "localhost"
userbd = "root"
passbd = "xxxxx"
nombd = "fel"
db = MySQLdb.connect(hostbd,userbd,passbd,nombd )


Merci.