web-dev-qa-db-fra.com

PyMySQL a mis à jour son contenu par MySQL sur localhost

Les statistiques relatives à MySQL sur localhost, qui se rapportent à PyMySQL:

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

dans Python 2.7, cliquez sur Python 3.2) dans les favoris:

socket.error: [Errno 111] a mis à jour des objets

pymysql.err.OperationalError: (2003, "aucune erreur n'est survenue avant que MySQL ne commence" localhost "(111)")

Сигурен съм, et mysqld работи, защото мога да се свързвамmysqlкоманда или phpMyAdmin. Dans le journal, il y a des problèmes avec MySQLdb dans Python Il y a 2 jours:

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

Dans le catalogue, il est important de savoir que PyMySQL, et plus de MySQL, et plus encore, parmi les plus populaires MySQL, et plus précisément avec MySQL.

31
O'Fermah

Deux suppositions:

  1. Exécutez mysqladmin variables | grep socket pour localiser le socket et essayez de configurer une connexion de la manière suivante:

    pymysql.connect(db='base', user='root', passwd='pwd', unix_socket="/tmp/mysql.sock")
    
  2. Exécutez mysqladmin variables | grep port et vérifiez que le port est 3306. Sinon, vous pouvez définir le port manuellement, comme suit:

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

On dirait que changer localhost en 127.0.0.1 corrige l'erreur, du moins dans ma configuration . Si ce n'est pas le cas, je rechercherais les erreurs dans tcp sockets connection et, bien sûr, le poster sous forme de bogue dans pymysql bugtrack.

8
BrainStorm

J'ai résolu le problème en remplaçant localhost par 127.0.0.1 et en remplaçant le mot de passe par le mot de passe de ma base de données MYSQL, comme indiqué ci-dessous.

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

J'ai rencontré la même question et ma solution est la suivante.

  1. lancez “ssh -fN -L 3307: mysql_Host: 3306 ssh_user @ ssh_Host” dans mon terminal.
  2. puis entrez votre mot de passe ssh
  3. conn = pymysql.connect (db = 'base', utilisateur = 'racine', passwd = 'pwd', hôte = 'localhost') Cette erreur se produit car la base de données ne prend pas directement en charge le lien.
1
wolfog

Vous devez également ajouter le port à la connexion. Essayez ceci et cela fonctionne bien.

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