Python并安装mysql连接器

时间:2015-04-19 12:38:36

标签: python mysql decode encode connector

我有一些不舒服的麻烦......

我想安装mysqlconnector。 所以,我从Oracle(msi)中获取并安装它。

毕竟我打开了一个PyCharm和控制台。 在那里我写了检查连接:

import mysql.connector
mysql.connector.connect(host='localhost',database='mysql',user='root',password='')

语法是一个点亮的

我在控制台遇到了麻烦:

Traceback (most recent call last):
  File "C:/Users/���������/PycharmProjects/prime_number/mys.py", line 2, in <module>
    mysql.connector.connect(host='localhost',database='mysql',user='root',password='')
  File "C:\Python27\lib\site-packages\mysql\connector\__init__.py", line 162, 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 472, in open_connection
    errno=2003, values=(self.get_address(), _strioerror(err)))
  File "C:\Python27\lib\site-packages\mysql\connector\errors.py", line 182, in __init__
    self.msg = self.msg % values
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 6: ordinal not in range(128)

在cmd中一样...... 据我了解一点 - 编码问题(utf-8或类似的) 我必须做什么样的解决方案? 谢谢!

1 个答案:

答案 0 :(得分:0)

当尝试连接到不存在的mysql服务器时,我将获得完全相同的回溯,除了最后一条跟踪,我将收到错误消息:

  File "/usr/lib/python2.7/dist-packages/mysql/connector/network.py", line 386, in open_connection
    errno=2003, values=(self.get_address(), _strioerror(err)))
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'localhost:3306' (111 Connection refused)

更改Python的区域设置时,最后一部分(111 Connection refused)将被翻译为我选择的语言。

我怀疑你来自韩国(因为韩国的UTF-8字符以0xcf开头),你的Python会自动将语言环境设置为韩语。然后_strioerror(err)中的函数network.py崩溃了。这将是mysql.connector包中的一个错误。

作为一种解决方法,它应该可以使用,您将Python语言环境设置更改为默认值'C'。要更改脚本的区域设置,请按以下方式进行更改:

import mysql.connector
import locale
locale.setlocale(locale.LC_ALL, 'C')
mysql.connector.connect(host='localhost',database='mysql',user='root',password='')

您的程序在此之后无法工作,但您会收到一条错误消息(英文版),希望能帮助您确定问题。