web-dev-qa-db-fra.com

OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

lors de la connexion à la base de données mysql dans Django, j'obtiens l'erreur.

  1. Je suis sûr que le serveur mysql fonctionne.

  2. /var/run/mysqld/mysqld.sock n'existe pas.

  3. Quand je lance $ find / -name *.sock -type s, Je ne reçois que /tmp/mysql.sock et quelques autres sorties non pertinentes.

  4. J'ai ajouté socket = /tmp/mysql.sock à /etc/my.cnf. Et puis j'ai redéfini mysql, quitté Django Shell, et connecté à la base de données mysql. J'ai toujours la même erreur.

J'ai beaucoup cherché, mais je ne sais toujours pas comment faire.

Toute aide est excellente. Merci d'avance.

Eh bien, je viens d'essayer quelques façons. Et il fonctionne. J'ai fait comme suit.

  1. Ajouter socket = /tmp/mysql.sock .Redémarrez le serveur mysql.
  2. ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock

J'ai rencontré un autre problème aujourd'hui. Je ne peux pas me connecter à mysql. Je suis novice sur mysql. Je suppose donc que le serveur et le client mysql utilisent le même socket pour communiquer. J'ajoute socket = /var/mysqld/mysqld.sock au bloc [client] [mysqld] dans my.cnf et il fonctionne.

15
robert

Utilisez "127.0.0.1" au lieu de "localhost"

DATABASES = {
   'default': {
      'ENGINE': 'Django.db.backends.mysql',
      'NAME': 'Django',
      'USER': 'root',
      'PASSWORD': '',
      'Host': '127.0.0.1',
      'PORT': '3306',
   }
}
22
Md. Ibrahim

en flacon, vous pouvez l'utiliser

app=Flask(__name__)

app.config["MYSQL_Host"]="127.0.0.1
app.config["MYSQL_USER"]="root"...

0