数据库--Mysql ERROR 2002 (HY000) Can't connect to local MySQL server through socket xxx'

一、问题描述

连接mysql数据库时,提示错误ERROR 2002 (HY000) Can't connect to local MySQL server through socket xxx' (2)

下面提供四种方案供参考解决

二、具体实现

方案1
查看mysql进程,并杀掉,重启mysql。

# ps -A|grep mysql

 

# kill -9 4174
# kill -9 xxxx
# /etc/init.d/mysql restart或 service mysql restart
# mysql -uroot -p
Enter password:

 

方案2
查看mysql是否已经启动;

# /etc/init.d/mysql status 或 service mysql status

running表示运行状态,dead表示停止状态。
数据库--Mysql ERROR 2002 (HY000) Can't connect to local MySQL server through socket xxx'_第1张图片

 

方案3
查看mysql是不是没有被授权,没有的话给mysql再授权一次。

# chown -R mysql:mysql /var/lib/mysql
# /etc/init.d/mysql restart或 service mysql restart
# mysql -uroot -p
Enter password:

方案4

# vim /etc/my.cnf

修改[mysqlid]后面max_connections=1000的参数1000为500或小一点
数据库--Mysql ERROR 2002 (HY000) Can't connect to local MySQL server through socket xxx'_第2张图片

方案5
修改/var/lib/mysql 所有文件所属权限为mysql:mysql(如图)

# chown mysql:mysql /var/lib/mysql/*

数据库--Mysql ERROR 2002 (HY000) Can't connect to local MySQL server through socket xxx'_第3张图片
 

方案6
连接mysql时,提示 '/var/lib/mysql /mysql.sock',就是目标文件mysql.sock找不到。
mysql .sock可能会可能会根据实际安装方式的不同,存放在不同的目录下,可能是/var/lib/mysql.sock或/tmp/mysql.sock或其他目录下,我的是实际是在/tmp/mysql.sock下。
方式一:配置my.cnf

# vim /etc/my.cnf

[mysqld]后面添加socket=/xxx/xx/mysql.sock
例如,我的目标目录为/tmp/mysql.sock,则socket=/tmp/mysql.sock
socket参数值为目标文件mysql.sock的实际位置,根据自己实际环境找到这个位置。

方式二:ln 创建软连接
# ln -s 原文件 目标文件

# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

/tmp/mysql.sock是我的mysql.sock的位置,/var/lib/mysql/mysql.sock是连接mysql的时候提示找不到的目标文件。
关于Linux ln -s软链接、硬链接参考百度答案https://zhidao.baidu.com/question/590820491.html

PS>>>mysql相关操作

查状态
# /etc/init.d/mysql status或service mysql status
启动
# /etc/init.d/mysql start或service mysql start
关闭
# /etc/init.d/mysql stop或service mysql stop
重启
# /etc/init.d/mysql restart或service mysql restart

 

你可能感兴趣的:(P1:数据库)