webentwicklung-frage-antwort-db.com.de

PyMySQL ist ein lokaler MySQL-Host

Dies ist die Beschreibung von MySQL und PyMySQL:

import pymysql
conn = pymysql.connect(db='base', user='root', passwd='pwd', Host='localhost')

zum Anfang (Zum Anfang von Python 2.7, Zum Ende von Python 3.2) Zum Anfang von:

socket.error: [Errno 111] Връзката е отказана

pymysql.err.OperationalError: (2003, "Nicht verfügbar für MySQL und Localhost (111)")

Sie können mit mysqld, mysqld, mysqld und mysqld sysqld sysqld sysqld sysqld sysqld sysqld sysqld sysqldmysqlкоманда или phpMyAdmin. Sie können MySQLdb in Python 2 wie folgt installieren:

import MySQLdb
conn = MySQLdb.connect(db='base', user='root', passwd='pwd', Host='localhost')

Sie können PyMySQL, MySQL und MySQL nacheinander testen.

31
O'Fermah

Zwei Vermutungen:

  1. Führen Sie mysqladmin variables | grep socket aus, um zu ermitteln, wo sich der Socket befindet, und versuchen Sie, eine Verbindung wie folgt herzustellen:

    pymysql.connect(db='base', user='root', passwd='pwd', unix_socket="/tmp/mysql.sock")
    
  2. Führen Sie mysqladmin variables | grep port aus und vergewissern Sie sich, dass der Port 3306 ist. Wenn nicht, können Sie den Port wie folgt manuell einstellen:

    pymysql.connect(db='base', user='root', passwd='pwd', Host='localhost', port=XXXX)
    
45

Scheint, als würde man localhost in 127.0.0.1 ändern, behebt den Fehler, zumindest in meiner Konfiguration ..__ Wenn dies nicht der Fall ist, würde ich nach Fehlern in tcp sockets connection suchen und ihn natürlich als Fehler in pymysql bugtrack posten.

8
BrainStorm

Ich habe das Problem gelöst, indem Sie localhost durch 127.0.0.1 ersetzt und das Kennwort in mein Kennwort für meine MYSQL-Datenbank geändert haben (siehe unten).

conn = pymysql.connect(
    Host = '127.0.0.1',
    port = 3306,
    user = 'root',
    passwd = 'XXXXXXXXX',
    db = 'mysql'
)
5
Byron Kats

Ich traf die gleiche Frage und meine Lösung lautet wie folgt.

  1. führen Sie in meinem Terminal „ssh -fN -L 3307: mysql_Host: 3306 ssh_user @ ssh_Host“ aus.
  2. dann geben Sie Ihr SSH-Passwort ein
  3. conn = pymysql.connect (db = 'base', user = 'root', passwd = 'pwd', Host = 'localhost')...... warum dieser Fehler auftritt, weil die Datenbank die Verknüpfung nicht direkt unterstützt.
1
wolfog

Sie müssen den Port auch zur Verbindung hinzufügen. Versuchen Sie es und es funktioniert gut.

pymysql(Module Name).connect(Host="localhost", user="root", passwd="root", port=8889, db="db_name")
0
Satheesh Polu