zoukankan      html  css  js  c++  java
  • 连接mysql错误:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock

    mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    1、检查服务是否启动

    2、配置里面的[mysqld]和[client]指定的socket文件不一致,修改/etc/my.conf中的socket文件路径


    [mysqld]
    socket=/var/lib/mysql/mysql.sock

    [client]
    socket=/var/lib/mysql/mysql.sock

    默认是没有[client]节的,如果你修改了mysqld的socket配置,就需要把[client]节配置添加上去并设置为和你修改后的[mysqld]节一致,因为[mysqld]和[client]默认的socket都是/var/lib/mysql/mysql.sock

    如果在PHP中通过127.0.0.1可以连接mysql ,但通过localhost连接时提示

    mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    那么还应该修改php.ini中的配置

    mysql.default_socket = /var/lib/mysql/mysql.sock

    连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。
    大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。
    当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。

    解决:首先要看本机MySQL的socket套接字文件在哪里,查看命令是:
        
    mysqld --verbose --help | grep socket

    mysql.default_socket

  • 相关阅读:
    BZOJ3670:[NOI2014]动物园(KMP)
    415. [HAOI2009] 旅行
    U10223 Cx大帝远征埃及
    U10206 Cx的治疗
    2741. [济南集训 2017] 掰巧克力
    复习题目汇总 over
    7-20 表达式转换(25 分)
    7-19 求链式线性表的倒数第K项(20 分)(单链表定义与尾插法)
    7-18 银行业务队列简单模拟(25 分)
    7-17 汉诺塔的非递归实现(25 分)(有待改进)
  • 原文地址:https://www.cnblogs.com/lbnnbs/p/14371033.html
Copyright © 2011-2022 走看看