Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion Bdd MariaDB refusée avec python

Sujet résolu
    18 octobre 2021 à 16:27:38

    Bonjour,

    J'ai actuellement Wamp qui est installé sur mon PC. Tout est intégré lors de l'installation Apache, Mysql, MariaDB et PHP.

    J'ai installé anaconda afin d'apprendre à développer en Python. J'ai un souci pour me connecter à la Bdd déjà installée avec Wamp.

    Y a t'il une incompatibilité ou y a t'il des bibliothèques à réinstaller.

    Merci d'avance.

    -
    Edité par 3617souter 19 octobre 2021 à 9:06:27

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2021 à 16:53:24

      Non, tu as quoi comme message d'erreur ?

      • Partager sur Facebook
      • Partager sur Twitter
        18 octobre 2021 à 16:55:27

         raise errors.InterfaceError(

        InterfaceError: Can't connect to MySQL server on '127.0.0.1:3306' (10061 Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée)

        -
        Edité par 3617souter 18 octobre 2021 à 17:01:32

        • Partager sur Facebook
        • Partager sur Twitter
          18 octobre 2021 à 17:02:08

          Vérifie que mysql est bien démarré sur localhost.

          Au fait pourquoi tu as installé deux systèmes de bdd ? (mysql et mariadb)

          -
          Edité par thelinekioubeur 18 octobre 2021 à 17:03:56

          • Partager sur Facebook
          • Partager sur Twitter
            18 octobre 2021 à 17:08:47

            En faite, lors de l'installation de Wamp, il propose les deux. Par contre, Mysql est désactivé, il n'y a que MariaDB qui est opérationnel.

            Sur le localhost, j'ai des applis qui tournent en php et qui se connectent normalement à la Bdd.

            j'utilise Flask, il renvoi par défaut sur le port 5000 semble t'il. Peut-il y avaoir une incohérence de ce côté là entre le port par défaut de Flask et le port d'accès à la Bdd ?

            Je me pose toutes ces questions car je débute avec Python après plusieurs années  en php.

            -
            Edité par 3617souter 18 octobre 2021 à 17:54:27

            • Partager sur Facebook
            • Partager sur Twitter
              18 octobre 2021 à 22:09:24

              Bonjour, Merci d'écrire un titre de sujet en rapport avec votre problématique.

              Mauvais titre

              Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

              Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

              De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

              Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

              Pour modifier votre titre, éditez le premier message de votre sujet.

              (titre originel : Python)

              Liens conseillés

              • Partager sur Facebook
              • Partager sur Twitter
                18 octobre 2021 à 22:55:03

                Il n'y a pas de rapport entre le port de flask et celui de la bdd.

                Mais peut être vérifie si celui de la bdd est correct.

                Tu utilise quelle librairie pour te connecter à la bdd ?

                • Partager sur Facebook
                • Partager sur Twitter
                  19 octobre 2021 à 8:03:43

                  j'utilise la bibliothèque mysql-connector

                  ci-joint le config.py

                  # -*- coding: utf-8 -*-
                  """
                  Created on Fri Oct 15 14:28:03 2021
                  
                  @author: S-SO
                  """
                  import os
                  
                  import mysql.connector
                  
                  connection = mysql.connector.connect(
                  
                                              host='localhost',
                                              user='root',
                                              password='',                             
                                              db='activites',
                                              charset='utf8mb4')                           
                  print ("connect successful!!") 

                  Dans le fichier network.py auquel l'erreur fait référence, le port que j'ai indiqué est 3307 (le port de la Bdd), par contre dans le texte de l'erreur, il fait référence au port 3306.

                  J'ai une autre question concernant Python, par quel protocole python se connecte à une Bdd car en cherchant sur ce forum, j'ai tester depuis wamp/MariaDB/tester le port 3306 et j'ai le résultat suivant:

                  ***** Test which uses port 3306 *****
                  
                  ===== Tested by command netstat filtered on port 3306 =====
                  
                  Port 3306 is not found associated with TCP protocol
                  Port 3306 is not found associated with TCP protocol

                  Dans mes recherches, à un moment, j'ai lu que python se connectait à une Bdd en TCP est ce correcte car dans ce cas, c'est peut-être normal que cela ne fonctionne pas.

                  Bonjour,

                  Pour AbcAbc6, y a t'il un moyen de changer le titre en cours ?

                  Si c'est le cas, je peux le faire.

                  Merci.

                  -
                  Edité par 3617souter 19 octobre 2021 à 10:02:55

                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 octobre 2021 à 8:54:32

                    >> Pour AbcAbc6, y a t'il un moyen de changer le titre en cours ?

                    Passer votre souris sur le premier message vous verrez apparaitre des liens "Signaler", "Citer", "modifier". Cliquer sur "Modifier" et le formulaire de modification du titre apparaitra.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 octobre 2021 à 9:06:55

                      C'est bon, j'ai modifié le titre.

                      Merci.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 octobre 2021 à 10:35:52

                        Parce que 3306 c'est le port par défaut. Si ta bdd est sur le port 3307, tu dois le spécifier dans ton code. Regarde la doc de mysql connector pour voir comment faire, mais il suffit probablement d'ajouter un argument "port=3307"

                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 octobre 2021 à 14:22:39

                          En continuant à chercher dans la doc mysql.connector, il préconisait l'utilisation de pymysql plutôt que mysql.connector. En effet avec le premier, on peut ajouter dans la demande de connexion le n° du port, ce qui n'est pas possible avec Mysql.connector.

                          Ci-joint le prog modifier :

                          import pymysql
                          
                          connection = pymysql.connect(
                                                      host='localhost',
                                                      port=3307,
                                                      user='root',
                                                      password='',                             
                                                      db='activites',
                                                      charset='utf8mb4')                           
                          print(connection)
                          print ("connect successful!!")
                          mycursor=connection.cursor()
                          mycursor.execute("select * from agent")
                          
                          myresult=mycursor.fetchall()
                          
                          for x in myresult:
                              print(x)

                          Merci thelinekioubeur pour ton aide.



                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 octobre 2021 à 17:53:22

                            J'ai essayer d'ajouter l'argument port dans le module de connexion avec mysql.connector.connect, il me renvoi une erreur de refus de connexion parce qu'il essaie de se connecter sur le port 3306 et non pas celui notifier dans l'argument.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              19 octobre 2021 à 19:12:57

                              Salut,

                              Voilà comment j'utilise pymysql:

                              params = {
                                          'user': 'root',
                                          'password': 'root',
                                          'host': 'localhost',
                                          'port': 3306,
                                          'db': 'fls',
                                          'unix_socket': '/Applications/MAMP/tmp/mysql/mysql.sock',
                                          'charset': 'utf8mb4',
                                          'cursorclass': pymysql.cursors.DictCursor }
                              
                              table = "Vente_Neuf"
                              connection = pymysql.connect(**params)
                              with connection.cursor() as cursor:
                                  # Commande SQL
                                  sql = "SELECT * FROM " + table
                                  # Execution de la requête.
                                  cursor.execute(sql)
                              
                              

                              Edit: le paramètre unix_socket n'est peut-être pas utile pour toi

                              -
                              Edité par Anonyme 19 octobre 2021 à 19:20:20

                              • Partager sur Facebook
                              • Partager sur Twitter
                                20 octobre 2021 à 17:08:31

                                Merci pour l'info. Je débute en python, je n'ai pas une conception optimale d'un prog. Je vais m'inspirer de cela pour essayer d'optimiser mes programmes à l'avenir. J'ai encore beaucoup de boulot je dois l'admettre.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  21 octobre 2021 à 9:12:06

                                  3617souter a écrit:

                                  J'ai essayer d'ajouter l'argument port dans le module de connexion avec mysql.connector.connect, il me renvoi une erreur de refus de connexion parce qu'il essaie de se connecter sur le port 3306 et non pas celui notifier dans l'argument.


                                  il faut mettre server_port=3307
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Connexion Bdd MariaDB refusée avec python

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown