[已解决]ERROR 2002 (HY000: Can’t connect to local MySQL server through socket /var/lib/mysql/mysql.sock

文章讲述了作者在遇到MySQL连接错误时,如何查找问题根源(缺失sock文件),发现需要重启MySQL服务以自动生成sock文件。通过详细的操作步骤,展示了如何在CentOS7环境中启动和重启MySQL服务,最终成功登录并确认MySQL版本为5.7.43。
摘要由CSDN通过智能技术生成

概要

新建库时发现数据库一个不小心导致登不上去,查看报错说是缺少这个sock文件,去网上搜报错解决方法时发现,文章里写的/usr/local/mysql目录我这里没有,我这个数据库版本是5.7的,通过find也找不到mysql.server文件,解决此问题的核心办法是要重新启动mysql服务,让其自动在/tmp文件中生成这个sock文件,所以我用下边的操作方法成功启动了mysql服务。

报错信息

[root@localhost centos7]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


不同之处

[root@localhost local]# find / -name mysql.server
find: ‘/run/user/1000/gvfs’: 权限不够
[root@localhost local]# find / -name mysql
find: ‘/run/user/1000/gvfs’: 权限不够
/etc/logrotate.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/mysql
 

查看mysql状态

[root@localhost bin]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 一 2024-01-22 09:19:23 CST; 15min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 1979 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 1260 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 1987 (code=exited, status=0/SUCCESS)

1月 22 09:14:35 localhost.localdomain systemd[1]: Starting MySQL Server...
1月 22 09:14:40 localhost.localdomain systemd[1]: Started MySQL Server.
1月 22 09:19:21 localhost.localdomain systemd[1]: Stopping MySQL Server...
1月 22 09:19:23 localhost.localdomain systemd[1]: Stopped MySQL Server.
 

启动mysql服务

[root@localhost bin]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service

[root@localhost bin]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2024-01-22 09:34:59 CST; 4s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 5336 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 5308 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 5339 (mysqld)
    Tasks: 27
   CGroup: /system.slice/mysqld.service
           └─5339 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mys...

1月 22 09:34:57 localhost.localdomain systemd[1]: Starting MySQL Server...
1月 22 09:34:59 localhost.localdomain systemd[1]: Started MySQL Server.
 

成功登录mysql

[root@localhost bin]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
 

参考:

MySQL 报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket-腾讯云开发者社区-腾讯云 (tencent.com)

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 是一个常见的MySQL连接错误。它表示MySQL客户端无法通过指定的socket文件连接到本地MySQL服务器。 这个错误通常有几种可能的原因和解决方法: 1. MySQL服务器未运行:首先,请确保MySQL服务器正在运行。您可以使用命令`systemctl status mysql`检查MySQL服务的状态。如果MySQL没有运行,请使用`systemctl start mysql`命令启动它。 2. MySQL连接配置错误:检查连接配置文件(通常是`/etc/my.cnf`或`/etc/mysql/my.cnf`)。确保配置文件中的socket路径与实际的socket文件路径匹配。如果路径不正确,可以手动编辑配置文件并将其更正。 3. socket文件不存在或权限问题:检查指定的socket文件`/var/lib/mysql/mysql.sock`是否存在,并且具有正确的权限。如果文件不存在,可以尝试重新创建它,并确保它所在的目录具有正确的权限。您可以使用以下命令进行验证: ``` ls -l /var/lib/mysql/mysql.sock ``` 4. MySQL服务器监听地址错误MySQL服务器可能只监听特定的IP地址或主机名。请确保您连接MySQL服务器时使用的是正确的主机名或IP地址。您可以尝试使用`-h`选项指定正确的主机名,例如: ``` mysql -h localhost ``` 希望这些解决方法能够帮助您解决ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'错误。如果问题仍然存在,请提供更多详细信息以便我能够提供进一步的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值