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')
  • 相关阅读:
    [转]linux下的fms2流媒体服务器搭建六部曲之四格式转换篇
    Linux 信号signal处理函数
    FMS在linux下安装时的问题处理
    Linux 下让你的C程序在后台运行
    Linux 信号signal处理机制
    Flash Media Server 2 无限制许可文件
    JavaScript动态控制网页元素事件
    自定义MessageBox的窗口颜色,字体等属性
    [转]linux下的fms2流媒体服务器搭建六部曲之一ffmpeg安装篇
    [转]linux下的fms2流媒体服务器搭建六部曲之三FlashMediaServer安装篇
  • 原文地址:https://www.cnblogs.com/1111zhiping-tian/p/8359019.html
Copyright © 2011-2022 走看看