MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket

在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时提供了socket文件的位置。下面是这个问题的描述与解决办法。

1、故障现象

代码如下:

[root@SZDB mysqldata]# mysql -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysqldata/mysql.sock' (111)
#故障环境
[root@SZDB mysqldata]# more /etc/issue
CentOS release 5.9 (Final)
Kernel \r on an \m

2、故障分析

代码如下:

#查看mysql实例的状态
[root@SZDB mysqldata]# netstat -ntlp  | grep 3306
tcp        0      0 :::3306                     :::*                        LISTEN      13001/mysqld
#查看my.cnf关于socket的配置
[root@SZDB mysqldata]# more /etc/my.cnf |grep sock
socket = /tmp/mysql.sock
#由上可知my.cnf中定义的为/tmp目录下,而错误提示为/data/mysqldata/目录下
#也就是说mysqld已经声称了正确的sock文件,但客户端连接还是从初始目录去找sock文件
#下面查看后台日志,有个ERROR,是关于满查询日志的,是由于目录不存在而产生的错误,与当前故障无关
[root@SZDB mysqldata]# more SZDB.err
             ............
2014-10-11 13:17:21 13001 [Note] InnoDB: 5.6.12 started; log sequence number 1625997
/app/soft/mysql/bin/mysqld: File '/log/mysql_logs/slowquery.log' not found (Errcode: 2 - No such file or directory)
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
le duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
2014-10-11 13:17:21 13001 [Note] Server hostname (bind-address): '*'; port: 3306
2014-10-11 13:17:21 13001 [Note] IPv6 is available.
2014-10-11 13:17:21 13001 [Note]   - '::' resolves to '::';
2014-10-11 13:17:21 13001 [Note] Server socket created on IP: '::'.
2014-10-11 13:17:21 13001 [Note] Event Scheduler: Loaded 0 events
2014-10-11 13:17:21 13001 [Note] /app/soft/mysql/bin/mysqld: ready for connections.
Version: '5.6.12-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution

3、解决故障

a、通过配置my.cnf mysql选项socket文件位置解决

代码如下:

#先停止mysql服务器
[root@SZDB mysqldata]# service mysqld stop
Shutting down MySQL.[  OK  ]
#修改my.cnf,如下
[root@SZDB mysqldata]# vi /etc/my.cnf
[mysql]
no-auto-rehash
socket = /tmp/mysql.sock  #添加该行
#重启mysql服务器
[root@SZDB mysqldata]# service mysqld start
Starting MySQL..[  OK  ]
#再次连接正常
[root@SZDB mysqldata]# mysql -uroot -p
Enter password:
mysql> show variables like 'version';
+---------------+------------+
| Variable_name | Value      |
+---------------+------------+
| version       | 5.6.12-log |
+---------------+------------+

b、为socket文件建立链接方式

代码如下:

[root@SZDB mysqldata]# ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock
ln: creating symbolic link `/data/mysqldata/mysql.sock' to `/tmp/mysql.sock': File exists
[root@SZDB mysqldata]# rm mysql.sock    #上面提示文件存在,所以删除之前的mysql.sock文件
[root@SZDB mysqldata]# ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock
[root@SZDB mysqldata]# ls -hltr mysql.sock
lrwxrwxrwx 1 root root 15 Oct 11 14:00 mysql.sock -> /tmp/mysql.sock
[root@SZDB mysqldata]# mysql -uroot -p
Enter password:
mysql> show variables like 'socket';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| socket        | /tmp/mysql.sock |
+---------------+-----------------+

(0)

相关推荐

  • Mysql启动报ERROR:2002的分析与解决

    前言 本文主要给大家介绍了关于Mysql启动报ERROR:2002的分析与解决,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.故障现象 [root@localhost scripts]# mysql -u root ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) 2.故障分析 查看mysql实例的状态 [root@localhost

  • mysql导入sql文件报错 ERROR 2013 2006 2002

    今天导入sql总是提示错误 复制代码 代码如下: ERROR 2013 (HY000): Lost connection to MySQL server during query ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/va

  • 阿里云安装mysql数据库出现2002错误解决办法

    在安装数据库的时候出现了如下错误: 解决办法如下: 1.在bin目录下 输入:kill -s 9 9907 再输入: ps -ef|grep mysql 显示如下: 2.回到lampp目录下,重启数据库,服务器: 1.  ./lampp restart 以上所述是小编给大家介绍的阿里云安装mysql数据库出现2002错误解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • 解决 phpmyadmin #2002 无法登录 MySQL 服务器

    解决 .#2002 无法登录 MySQL 服务器 将config.sample.inc.php复制成config.inc.php 出现这个错误,表示没有连接到数据库.修改config.inc.php文件, 复制代码 代码如下: 将$cfg['Servers'][$i]['host'] = 'localhost'; 改为$cfg['Servers'][$i]['host'] = '127.0.0.1'; 或者 修改 php.ini : mysql.default_socket = /tmp/mys

  • mysql中异常错误ERROR:2002的解决方法

    最近在启动mysql 报错,错误提示如下: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 排查过程 1.先查看 /etc/rc.d/init.d/mysqld status 看看mysql是否已经启动. 另外看看是不是权限问题. 2.确定你的mysql.sock是不是在那个位置, mysql -u 你的mysql用户名 -p -S /va

  • MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket

    在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时提供了socket文件的位置.下面是这个问题的描述与解决办法. 1.故障现象 复制代码 代码如下: [root@SZDB mysqldata]# mysql -uroot -p123456 Warning: U

  • MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket

    在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时提供了socket文件的位置.下面是这个问题的描述与解决办法. 1.故障现象 复制代码 代码如下: [root@SZDB mysqldata]# mysql -uroot -p123456 Warning: U

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

    错误信息: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 出现问题原因: 有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socket mysql.sock 文件有什么用: mysql 支持 socket 和 TCP/IP 连接.那么 mysql.sock 这个文件有什么用呢?连接local

  • 解决MySQL启动报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

    这个错误是新手经常会遇到的,本文主要介绍如何修复ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 解决方案: 1.登录到安装Mysql的主机,打开cmd命令行工具,执行命令mysql -uroot -p,报出下面所描述的错误: 2.在开始菜单中找到计算机管理,在计算机管理中找到[服务],在服务检查是否存在Mysql服务: 3.如果[步骤2]中找不到Mysql服务需要手动安装Mysql服务,安装命令为m

  • php 不能连接数据库 php error Can't connect to local MySQL server

    测试的php文件 <?php $link=mysql_connect('localhost','root','zz') or die(mysql_error()); mysql_select_db('test') or die('no db'); mysql_query('SET NAMES utf8'); echo 99; ?> 运行后报错 Can't connect to local MySQL server through socket '/tmp/mysql.sock' 但在 命令行中

  • php 不能连接数据库 php error Can't connect to local MySQL server

    测试的php文件 <?php $link=mysql_connect('localhost','root','zz') or die(mysql_error()); mysql_select_db('test') or die('no db'); mysql_query('SET NAMES utf8'); echo 99; ?> 运行后报错 Can't connect to local MySQL server through socket '/tmp/mysql.sock' 但在 命令行中

  • Can't connect to local MySQL through socket '/tmp/mysql.sock'解决方法

    报错信息: ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) 解决办法: /usr/local/mysql/bin/mysqladmin -u root > -S /var/lib/mysql/mysql.sock password 'your.passwd' 或者做个软连接 ln -s /var/lib/mysql/mysql.sock /tmp 原因: 其实提示找不到

  • mysql出现ERROR 1819 (HY000)的解决方法

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,出现这个问题怎么办?不用着急,下面给出答案. 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通过log_error设置 mysql> select @@log_error; +---

  • MySQL错误ERROR 1615 解决方法

    今天测试合服脚本的时候,遇到一个很奇怪的问题.Mysql报ERROR: ERROR 1615 (HY000): Prepared statement needs to be re-prepared 经过测试,发现不是合服脚本的问题.经过一番搜索.发现原来是mysql的变量值设置不合理引起的,调整以下值: table_open_cache 64=>16384 table_definition_cache 256=>16384 mysql> set global table_open_cac

  • MySQL关于ERROR 1290 (HY000)报错解决方法

    一个问题纠结很久,反复确认语法问题.但是后来网上搜了一下,茅塞顿开.特此总结一下. mysql> grant select,insert,update,delete on *.* to 'root'@'%'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement mysql> flush privileges;

随机推荐