查看: 75|回复: 4

[Mysql] MySQL错误 ERROR 2002 (HY000): Can't connect to local MySQL server through s...

[复制链接]
  • TA的每日心情
    难过
    2016-4-26 10:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2019-6-2 11:39:44 | 显示全部楼层 |阅读模式

    原因分析:

    1、没有 /var/lib/mysql/mysql.sock 的目录权限

    添加权限 chown -R mysql:mysql /var/lib/mysql/

    2、没有/var/lib/mysql/mysql.sock文件

    通过 find / -name mysql.sock

    在 /tmp//mysql.sock

    用 ln -s 命令建立连接

    或者修改 /etc/my.cnf配置文件,下边有,然后重启

    [backcolor=white !important][size=1em][color=white !important]
    [color=white !important][size=1em]?

    [size=1em]1

    [size=1em]2

    [size=1em]3

    [size=1em]4

    [size=1em]5

    [size=1em]6

    [size=1em]7

    [size=1em]8

    [size=1em]9

    [size=1em]10

    [size=1em]11

    [size=1em]12

    [size=1em]13

    [size=1em]14

    [size=1em]15

    [size=1em]16

    [size=1em]17

    [size=1em]18

    [size=1em]19

    [size=1em]20

    [size=1em]21

    [size=1em]22

    [size=1em]23

    [size=1em]24

    [size=1em]25

    [size=1em]26

    [size=1em]27

    [size=1em]28

    [size=1em]29

    [size=1em]30

    [size=1em]31

    [size=1em]32

    [size=1em]33

    [size=1em]34

    [size=1em]35

    [size=1em]36

    [size=1em]37

    [size=1em]38

    [size=1em]39

    [size=1em]40

    [size=1em]41

    [size=1em]42

    [size=1em]43

    [size=1em]44

    [size=1em]45

    [size=1em]46

    [size=1em]47

    [size=1em]48

    [size=1em]49

    [size=1em]50

    [size=1em]51

    [size=1em]52

    [size=1em]53

    [size=1em]54

    [size=1em]55

    [size=1em]56

    [size=1em]57

    [size=1em]58

    [size=1em]59

    [size=1em]60

    [size=1em]61

    [size=1em]62

    [size=1em]63

    [size=1em]64

    [size=1em]65

    [size=1em]66

    [size=1em]67

    [size=1em][size=1em]#查看mysql实例的状态
    [size=1em][root@SZDB mysqldata]# netstat -ntlp  | grep 3306
    [size=1em]tcp        0      0 :::3306                     :::*                        LISTEN      13001/mysqld
    [size=1em]#查看my.cnf关于socket的配置
    [size=1em][root@SZDB mysqldata]# more /etc/my.cnf |grep sock
    [size=1em]socket = /tmp/mysql.sock
    [size=1em]#由上可知my.cnf中定义的为/tmp目录下,而错误提示为/data/mysqldata/目录下
    [size=1em]#也就是说mysqld已经声称了正确的sock文件,但客户端连接还是从初始目录去找sock文件
    [size=1em]#下面查看后台日志,有个ERROR,是关于满查询日志的,是由于目录不存在而产生的错误,与当前故障无关
    [size=1em][root@SZDB mysqldata]# more SZDB.err
    [size=1em]             ............
    [size=1em]2014-10-11 13:17:21 13001 [Note] InnoDB: 5.6.12 started; log sequence number 1625997
    [size=1em]/app/soft/mysql/bin/mysqld: File '/log/mysql_logs/slowquery.log' not found (Errcode: 2 - No such file or directory)
    [size=1em]2014-10-11 13:17:21 13001 [ERROR] Could not use /log/mysql_logs/slowquery.log for logging (error 2). Turning logging off for the who
    [size=1em]le duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
    [size=1em]2014-10-11 13:17:21 13001 [Note] Server hostname (bind-address): '*'; port: 3306
    [size=1em]2014-10-11 13:17:21 13001 [Note] IPv6 is available.
    [size=1em]2014-10-11 13:17:21 13001 [Note]   - '::' resolves to '::';
    [size=1em]2014-10-11 13:17:21 13001 [Note] Server socket created on IP: '::'.
    [size=1em]2014-10-11 13:17:21 13001 [Note] Event Scheduler: Loaded 0 events
    [size=1em]2014-10-11 13:17:21 13001 [Note] /app/soft/mysql/bin/mysqld: ready for connections.
    [size=1em]Version: '5.6.12-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
    [size=1em]3、解决故障
    [size=1em]通过配置my.cnf mysql选项socket文件位置解决
    [size=1em]复制代码 代码如下:
    [size=1em]#先停止mysql服务器
    [size=1em][root@SZDB mysqldata]# service mysqld stop
    [size=1em]Shutting down MySQL.[  OK  ]
    [size=1em]#修改my.cnf,如下
    [size=1em][root@SZDB mysqldata]# vi /etc/my.cnf
    [size=1em][mysql]
    [size=1em]no-auto-rehash
    [size=1em]socket = /tmp/mysql.sock  #添加该行
    [size=1em][mysql.server]
    [size=1em]user=mysql#添加
    [size=1em]basedir=/usr/local/mysql#添加
    [size=1em]#If there is not currently a section called [client], add one at the bottom of the file and copy the socket= line under the [mysqld] section such as:
    [size=1em][client]#添加
    [size=1em]socket=/var/lib/mysql/mysql.sock#添加
    [size=1em]#重启mysql服务器
    [size=1em][root@SZDB mysqldata]# service mysqld start
    [size=1em]Starting MySQL..[  OK  ]
    [size=1em]#再次连接正常
    [size=1em][root@SZDB mysqldata]# mysql -uroot -p
    [size=1em]Enter password:
    [size=1em]mysql> show variables like 'version';
    [size=1em]+---------------+------------+
    [size=1em]| Variable_name | Value      |
    [size=1em]+---------------+------------+
    [size=1em]| version       | 5.6.12-log |
    [size=1em]+---------------+------------+
    [size=1em]为socket文件建立链接方式
    [size=1em]复制代码 代码如下:
    [size=1em][root@SZDB mysqldata]# ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock
    [size=1em]ln: creating symbolic link `/data/mysqldata/mysql.sock' to `/tmp/mysql.sock': File exists
    [size=1em][root@SZDB mysqldata]# rm mysql.sock    #上面提示文件存在,所以删除之前的mysql.sock文件
    [size=1em][root@SZDB mysqldata]# ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock
    [size=1em][root@SZDB mysqldata]# ls -hltr mysql.sock
    [size=1em]lrwxrwxrwx 1 root root 15 Oct 11 14:00 mysql.sock -> /tmp/mysql.sock
    [size=1em][root@SZDB mysqldata]# mysql -uroot -p
    [size=1em]Enter password:
    [size=1em]mysql> show variables like 'socket';
    [size=1em]+---------------+-----------------+
    [size=1em]| Variable_name | Value           |
    [size=1em]+---------------+-----------------+
    [size=1em]| socket        | /tmp/mysql.sock |




    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2019 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表