视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL错误ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket
2020-11-09 21:01:44 责编:小采
文档

在安装好了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 |
+---------------+-----------------+

您可能感兴趣的文章:

  • SQL Server附加数据库报错无法打开物理文件,操作系统错误5的图文解决教程
  • SQL Server附加数据库出错,错误代码5123
  • SQL Server 2005附加数据库时Read-Only错误的解决方案
  • Sqlserver 2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
  • MSSQL2005在networkservice权限运行附加数据库报(Microsoft SQL Server,错误: 5120)
  • 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
  • SQL Server 2008登录错误:无法连接到(local)解决方法
  • 安装sql server 2008时的4个常见错误和解决方法
  • SQL Server错误代码大全及解释(留着备用)
  • SQL Server数据库附加失败的解决办法
  • 下载本文
    显示全文
    专题