zoukankan      html  css  js  c++  java
  • python MySQLdb连接mysql时报错

    故障现象:

    >>> import MySQLdb
    >>> conn = MySQLdb.connect(host="localhost",user="root",passwd="tiange1003",db="tian",port=3306,charset="utf8")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib64/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
        return Connection(*args, **kwargs)
      File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__
        super(Connection, self).__init__(*args, **kwargs2)
    _mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")

    原因分析:

    这里主要是因为我们连接mysql的时候,host用的是localhost, 实际用的是UNIX Domain Socket来进行通信的。我们知道,UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,如果这个路径不存在的话,连接的时候就会失败。上面提示的错误原因是”Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)”,从字面意思上来看,是说无法通过’/var/lib/mysql/mysql.sock’这个socket来连接本地的mysql sever,这时候问题基本就比较明显了,应该是mysql配置的本地连接的socket不是’/var/lib/mysql/mysql.sock’这个路径的原因。接下来我们来验证我们的想法,打开mysql的配置文件(/etc/my.cnf),我们看到如下的内容:这里主要是因为我们连接mysql的时候,host用的是localhost, 实际用的是UNIX Domain Socket来进行通信的。我们知道,UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,如果这个路径不存在的话,连接的时候就会失败。上面提示的错误原因是”Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)”,从字面意思上来看,是说无法通过’/var/lib/mysql/mysql.sock’这个socket来连接本地的mysql sever,这时候问题基本就比较明显了,应该是mysql配置的本地连接的socket不是’/var/lib/mysql/mysql.sock’这个路径的原因。接下来我们来验证我们的想法,打开mysql的配置文件(/etc/my.cnf),我们看到如下的内容:

    解决方式:

    1、查看/etc/my.cnf配置文件

    [mysqld]
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/data/error.log
    pid-file = /usr/local/mysql/data/mysql.pid
    user = mysql
    tmpdir = /tmp

    在这个配置文件里面添加

    socket  = /tmp/mysql.sock

    2、解决办法:
    >>> import MySQLdb
    >>> conn = MySQLdb.connect(host="localhost",user="root",passwd="tiange1003",db="tian",port=3306,charset="utf8",unix_socket='/tmp/mysql.sock')
  • 相关阅读:
    SQLServer中给表增加组合唯一约束
    使用axis调用WebService服务端
    SQLServer查询锁表
    SQLServer修改字段类型
    SQLServer中修改字段为空
    查看SQLserver编码格式的SQL语句
    查询表结构sql
    Sublime Text3 如何开启Debug
    JMeter——JMeter如何进行汉化
    Redis——redis使用redis-dump,redis-load导出导入数据——【三】
  • 原文地址:https://www.cnblogs.com/1111zhiping-tian/p/8359019.html
Copyright © 2011-2022 走看看