资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 系统运维 > 运维 > Linux

mysql(mariadb)无法打开,报错:找不到mysqld.sock且Can‘t connect to MySQL server on 127.0.0.1(111)

Linux 更新时间: 发布时间: 计算机考试归档 最新发布

mysql(mariadb)无法打开,报错:找不到mysqld.sock且Can‘t connect to MySQL server on 127.0.0.1(111)

目录
  • 1:问题描述
  • 2:问题分析与解决
  • 3:反思与总结

网络上太多该问题来自转载且格式混乱,查阅他人经验并没有解决我的问题,这里分享下自己解决后的经验,以免后人少走弯路。
标题因为长度限制,很多关键信息无法打出,这里详细描述下我重启mysql(是 mariadb的,以下简称mysql)所遇到的问题:
1: MariaDB: ERROR 2003 (HY000): Can’t connect to MySQL server on ‘127.0.0.1’ (111 “Connection refused”)
2: Job for mariadb.service failed because the control process exited with error code. See “systemctl status mariadb.service” and “journalctl -xe” for details.
3: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
直接上结论: 你是不是修改过配置文件,修改了/etc/my.cnf ,如果是,那么请继续向下看,如果没有,那请继续查阅其他资料。

1:问题描述

一开始mysql是正常的,修改过mysql的配置文件后,打算通过重启mysql后报错,内容如下:

systemctl restart mariadb

报错:Job for mariadb.service failed because the control process exited with error code. See “systemctl status mariadb.service” and “journalctl -xe” for details.
顺着报错给的指令,

systemctl status mariadb.service

查看mysql的运行状态

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 日 2022-05-29 14:42:18 CST; 13s ago
  Process: 3531 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=1/FAILURE)
  Process: 3530 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=0/SUCCESS)
  Process: 3496 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 3530 (code=exited, status=0/SUCCESS)

5月 29 14:42:12 localhost systemd[1]: Starting MariaDB database server...
5月 29 14:42:12 localhost mariadb-prepare-db-dir[3496]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
5月 29 14:42:12 localhost mysqld_safe[3530]: 220529 14:42:12 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
5月 29 14:42:12 localhost mysqld_safe[3530]: 220529 14:42:12 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
5月 29 14:42:18 localhost systemd[1]: mariadb.service: control process exited, code=exited status=1
5月 29 14:42:18 localhost systemd[1]: Failed to start MariaDB database server.
5月 29 14:42:18 localhost systemd[1]: Unit mariadb.service entered failed state.
5月 29 14:42:18 localhost systemd[1]: mariadb.service failed.

这里我们需要注意,Failed to start MariaDB database server表明mysql根本没有启动,通过ps aux | grep mysql也发现没有mysql的进程,所以网上相关的kill这个进程然后重启就是于事无补的。
接着尝试通过常用的socket方式启动mysql

mysql -uroot -p12345678

报错如下:
Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
顾名思义,mysql服务器无法通过这个mysqld.sock连接,那么我们会习惯去看看这个文件的状态,结果发现这个目录下没有这个文件
原因是这个文件是需要mysql正常启动后才会出现的,此时因为重启失败了,自然找不到这个文件,因此重启机器自然也解决不了。
接着,通过socket无法连接mysql,那么我换种方式

mysql -u root -h 127.0.0.1 -p 3306

输入密码后出现如下报错

**MariaDB: ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused")**
2:问题分析与解决

这时,我们回到最初的报错上,我们发现启动的日志会被记录在log中,路径为:/var/log/mariadb/mariadb.log
查询日志后发现如下重要信息

220529 14:42:12 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
220529 14:42:12 InnoDB: The InnoDB memory heap is disabled
220529 14:42:12 InnoDB: Mutexes and rw_locks use GCC atomic builtins
220529 14:42:12 InnoDB: Compressed tables use zlib 1.2.7
220529 14:42:12 InnoDB: Using Linux native AIO
220529 14:42:12 [Note] /usr/libexec/mysqld (mysqld 5.5.68-MariaDB) starting as process 3828 ...
220529 14:42:12 InnoDB: Initializing buffer pool, size = 128.0M
220529 14:42:12 InnoDB: Completed initialization of buffer pool
220529 14:42:12 InnoDB: highest supported file format is Barracuda.
220529 14:42:12  InnoDB: Waiting for the background threads to start
220529 14:42:13 Percona XtraDB (http://www.percona.com) 5.5.61-MariaDB-38.13 started; log sequence number 18423221
220529 14:42:13 [Note] Plugin 'FEEDBACK' is disabled.
220529 14:42:13 [ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
220529 14:42:13 [ERROR] Aborting

220529 14:42:13  InnoDB: Starting shutdown...
220529 14:42:17  InnoDB: Shutdown completed; log sequence number 18423221
220529 14:42:17 [Note] /usr/libexec/mysqld: Shutdown complete

220529 14:42:17 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended

显而易见,有问题的地方出现在ERROR处,unknown variable ‘default-character-set=utf8’
这里我才恍然大悟,自己刚刚修改过配置文件,/etc/my.cnf,所以将配置复原后,重启成功,下面的操作一气呵成

[root@localhost ~]# systemctl restart mariadb  #这里没有输出是正常的
[root@localhost ~]#   
[root@localhost ~]# mysql -uroot -p12345678
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>

顺利通过socket方式进入mysql,同时,mysqld.sock自然也回来了,毕竟启动成功了

[root@localhost mysql]# ll
总用量 53288
-rw-rw----. 1 mysql mysql    16384 5月  29 14:42 aria_log.00000001
-rw-rw----. 1 mysql mysql       52 5月  29 14:42 aria_log_control
-rw-rw----. 1 mysql mysql 44040192 5月  29 14:52 ibdata1
-rw-rw----. 1 mysql mysql  5242880 5月  29 14:52 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 5月  29 14:52 ib_logfile1
drwx------. 2 mysql mysql     4096 7月  27 2021 mysql
srwxrwxrwx. 1 mysql mysql        0 5月  29 14:44 mysql.sock    《-----------在这里
drwx------. 2 mysql mysql     8192 5月  29 14:52 neutron
drwx------. 2 mysql mysql     4096 7月  27 2021 performance_schema
[root@localhost mysql]# 
3:反思与总结

1:重启能够解决80%的问题,这80%中不包括你修改了配置
2:原来的服务正常,突然某个时间不好使了,要注意是不是期间你误删了重要的文件,或者修改了什么配置。
3:日志是最重要的参考。
4:不到万不得已,不要删库重建。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/941226.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【mysql(mariadb)无法打开,报错:找不到mysqld.sock且Can‘t connect to MySQL server on 127.0.0.1(111)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2