2015-01-15 2 views
0

파이썬을 사용하여 mySql 데이터베이스에 연결하려고합니다. 이 데이터베이스는 무료 웹 호스팅 서버 인 webzdarma.cz에 있습니다.MySql 서버에 연결할 수 없습니다 - Python

나는 mysql.connector.connect을 사용하고 제 의견은 모두 제 의견입니다. 데이터베이스에 연결하는 방법에 대한 정보는 다음과 같습니다

는 시도가 오류를이 코드를 실행하는
# -*- coding: utf-8 -*- 
    import mysql.connector 

    cnx = mysql.connector.connect(user='flat', password='xxxx', 
            host='mysql.webzdarma.cz', 
            database='flat') 

가 발생 시킬수 :

Traceback (most recent call last): 
    File "C:/Users/Python/PycharmProjects/Flat/Flat.py", line 6, in <module> 
    database='flat') 
    File "C:\Python27\lib\site-packages\mysql\connector\__init__.py", line 159, in connect 
    return MySQLConnection(*args, **kwargs) 
    File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 129, in __init__ 
    self.connect(**kwargs) 
    File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 454, in connect 
    self._open_connection() 
    File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 417, in _open_connection 
    self._socket.open_connection() 
    File "C:\Python27\lib\site-packages\mysql\connector\network.py", line 470, in open_connection 
    errno=2003, values=(self.get_address(), _strioerror(err))) 
    File "C:\Python27\lib\site-packages\mysql\connector\errors.py", line 181, in __init__ 
    self.msg = self.msg % values 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf8 in position 15: ordinal not in range(128) 

이 오류가 있기 때문에 발생

This information is for PHP but I suppose it should work with Python: 
Server: mysql.webzdarma.cz 
Username: flat 
Database: flat 
Password: xxxx 

이 내 코드입니다 프로그램 연결 실패에 대한 체코 어 메시지 수신 아무도 내가 뭘 잘못하고 있는지 알아?

답변

0

당신이 말한대로라면, 당신은 아무런 잘못도하지 않고 있습니다. MySQL 공급자는 잘못되었습니다.

이 오류를 피하는 방법은 기본 파이썬 인코딩을 이 될 때 오류 메시지를 "이해"할 수 있도록 원격 쪽에서 보내진 코드로 설정하는 것입니다.

이를 위해 수행하려고 : 수입 SYS sys.setdefaultencoding ("") 나는 그것이 될 수있는 코덱 모르는

을 - 당신이 알고있는 쉬운 방법이 없습니다 그래서 만약 즉, 은 "latin1"을 코덱으로 사용합니다. 즉, mojibake 오류 메시지를 표시하지만 256 바이트 코드가 모두 유니 코드로 매핑되기 때문에 UnicodeDecodeError를 얻을 수 없습니다.

1
import MySQLdb 
db = MySQLdb.connect(host="mysql.webzdarma.cz", 
       user="flat", 
       passwd="xxxx", 
       db="flat") 
cur = db.cursor() 
cur.execute("SELECT * FROM YOUR_TABLE_NAME") 
res = cur.fetchall() 

시도해보십시오. 자세한 내용은

는 질문 How do I connect to a MySQL Database in Python? 내가 내 로컬 dev에 시스템에서 매우 같은 문제로 실행

0

물었다 따라 내 MySQL의 서비스가 시작되지 않았습니다 내가 같은 오류 메시지를 받았습니다 것으로 나타났다. 인스턴스를 시작하고 더 이상 아무런 문제가 없습니다!

MySQL Connector에서 버그로보고 할 수 있는지 확인합니다.

관련 문제