Utilisation et installation de mysql.db avec python

Résolu/Fermé
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - Modifié par xunil2003 le 26/01/2015 à 11:37
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - 26 janv. 2015 à 13:13
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.
A voir également:

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).
0
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
Modifié par xunil2003 le 26/01/2015 à 13:21
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.
0