복붙노트

[PYTHON] PyMySQL은 로컬 호스트의 MySQL에 연결할 수 없습니다.

PYTHON

PyMySQL은 로컬 호스트의 MySQL에 연결할 수 없습니다.

PyMySQL을 사용하여 localhost에서 MySQL에 연결하려고합니다.

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

하지만 (파이썬 2.7과 파이썬 3.2 모두에서) 나는 오류를 얻는다.

나는 mysql 명령이나 phpMyAdmin을 사용하여 연결할 수 있기 때문에 mysqld가 실행 중임을 확신한다. 게다가 파이썬 2에서 거의 동일한 코드를 사용하여 MySQLdb를 사용하여 연결할 수 있습니다.

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

문제는 MySQL보다는 PyMySQL쪽에있는 것으로 보이지만 문제를 해결하는 방법을 모릅니다.

해결법

  1. ==============================

    1.두 가지 추측 :

    두 가지 추측 :

  2. ==============================

    2.localhost를 127.0.0.1로 변경하는 것이 적어도 내 구성에서는 오류를 수정하는 것 같습니다. 그렇지 않다면, 나는 TCP 소켓 연결에서 오류를 찾고, 당연히 pymysql bugtrack에 버그로 게시 할 것이다.

    localhost를 127.0.0.1로 변경하는 것이 적어도 내 구성에서는 오류를 수정하는 것 같습니다. 그렇지 않다면, 나는 TCP 소켓 연결에서 오류를 찾고, 당연히 pymysql bugtrack에 버그로 게시 할 것이다.

  3. ==============================

    3.localhost를 127.0.0.1로 바꾸고 MYSQL 데이터베이스 비밀번호로 비밀번호를 변경하여이 문제를 해결했습니다.

    localhost를 127.0.0.1로 바꾸고 MYSQL 데이터베이스 비밀번호로 비밀번호를 변경하여이 문제를 해결했습니다.

    conn = pymysql.connect(
        host = '127.0.0.1',
        port = 3306,
        user = 'root',
        passwd = 'XXXXXXXXX',
        db = 'mysql'
    )
    
  4. ==============================

    4.연결에 포트를 추가해야합니다. 이것을 시도하고 잘 작동합니다.

    연결에 포트를 추가해야합니다. 이것을 시도하고 잘 작동합니다.

    pymysql(Module Name).connect(host="localhost", user="root", passwd="root", port=8889, db="db_name")
    
  5. from https://stackoverflow.com/questions/6885164/pymysql-cant-connect-to-mysql-on-localhost by cc-by-sa and MIT license