IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 解决Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2) -> 正文阅读

[系统运维]解决Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)

[root@xxx ~]# mysql

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/lib/mysql/mysql.sock’ (2)

出现这个错误,表示 MySQL 的服务进程 mysqld 没起来,

[root@xxx ~]# systemctl status mysqld

● mysqld.service - MySQL Community Server Loaded: loaded
(/usr/lib/systemd/system/mysqld.service; enabled; vendor preset:
disabled) Active: inactive (dead) since 一 2022-01-31 18:46:40 CST;
3min 15s ago Process: 2131
ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited,
status=0/SUCCESS) Process: 2130 ExecStart=/usr/bin/mysqld_safe
–basedir=/usr (code=exited, status=0/SUCCESS) Process: 2116 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited,
status=0/SUCCESS) Main PID: 2130 (code=exited, status=0/SUCCESS)

没起来的状态也有可能是

● mysqld.service - MySQL
Community Server Loaded: loaded
(/usr/lib/systemd/system/mysqld.service; enabled; vendor preset:
disabled) Active: activating (start-post) since 一 2022-01-31
17:56:47 CST; 4min 44s ago Process: 5839
ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited,
status=0/SUCCESS) Process: 5824
ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited,
status=0/SUCCESS) Main PID: 5839 (code=exited, status=0/SUCCESS);

不管遇到的是哪一种,都说明 mysqld 没起来,这种情况下,尝试登陆 MySQL 就会报本文标题中的错误,
[root@bogon ~]# mysql

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/lib/mysql/mysql.sock’ (2)

同时,如果尝试使用 systemctl restart mysqld 或者 systemctl start mysqld 重新启动 mysqld 服务,会卡住一直不动,直到很长时间之后最后返回错误 ,

[root@bogon lib]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
Job for mysqld.service failed because a timeout was exceeded. See “systemctl status mysqld.service” and “journalctl -xe” for details.

这个问题的原因很简单,就是在 MySQL 启动的时候,没有找到 mysql.sock

[root@xxx ~]# cat /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

从上面可以看到,mysql.sock 的位置在 /var/lib/mysql/

[root@xxx bin]# ll /var/lib/mysql

总用量 110604
-rw-rw----. 1 root root 56 1月 31 15:35 auto.cnf
-rw-rw----. 1 root root 12582912 1月 31 17:52 ibdata1
-rw-rw----. 1 root root 50331648 1月 31 17:52 ib_logfile0
-rw-rw----. 1 root root 50331648 1月 31 17:52 ib_logfile1 drwx------. 2 root root 4096 1月 31 15:35 mysql
drwx------. 2 root root 4096 1月 31 performance_schema

但经过查询目录并没有文件 mysql.sock

解决的办法也很简单,
使用 mysqld_safe & 重新创建 mysql.sock

第一步:
[root@xxx opt]# systemctl stop mysqld

第二步:
[root@xxx opt]# cd /var/lib/
[root@xxx lib]# ll

drwxr-xr-x. 4 root root 114 1月 31 18:11 mysql
drwxr-x—. 2 root root 6 1月 5 2021 mysql-files

[root@xxx lib]# chown -R mysql:mysql mysql
[root@xxx lib]# chown -R mysql:mysql mysql-files
[root@xxx lib]# ll

drwxr-xr-x. 4 mysql mysql 114 1月 31 18:11 mysql
drwxr-x—. 2 mysql mysql 6 1月 5 2021 mysql-files

第三步:
[root@xxx lib]# cd /usr
[root@xxx usr]# cd bin
[root@xxx bin]# mysqld_safe &
& 符号的意思是,在后台运行.个人认为可加可不加,不影响结果

默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个’&'实现这个目的。

[root@xxx bin]# ll /var/lib/mysql/

总用量 110604
-rw-rw----. 1 mysql mysql 56 1月 31 15:35 auto.cnf
-rw-rw----. 1 mysql mysql 12582912 1月 31 18:30 ibdata1
-rw-rw----. 1 mysql mysql 50331648 1月 31 18:30 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 1月 31 17:52 ib_logfile1 drwx------. 2 mysql mysql 4096 1月 31 15:35 mysql
srwxrwxrwx. 1 mysql mysql 0 1月 31 18:30 mysql.sock
drwx------. 2 mysql mysql 4096 performance_schema

[root@xxx mysql]# systemctl start mysqld
[root@xxx mysql]# systemctl status mysqld

● mysqld.service - MySQL Community Server Loaded: loaded
(/usr/lib/systemd/system/mysqld.service; enabled; vendor preset:
disabled) Active: active (running) since 一 2022-01-31 19:31:50 CST;
13s ago Process: 3401 ExecStartPost=/usr/bin/mysql-systemd-start
post (code=exited, status=0/SUCCESS) Process: 3386
ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited,
status=0/SUCCESS) Main PID: 3400 (mysqld_safe)

[root@xxx bin]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL
connection id is 1 Server version: 5.6.51 MySQL Community Server (GPL)

Copyright ? 2000, 2021, Oracle and/or its affiliates. All rights
reserved.

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> select user();
±---------------+
| user() |
±---------------+
| root@localhost |
±---------------+
1 row in set (0.00 sec)

这里再补充几点,
一:出现问题最好的方法是,查看 log 中的
[root@xxx mysql]# cat /etc/my.cnf

[mysqld_safe]
log-error=/var/log/mysqld.log

[root@xxx mysql]# cat /var/log/mysqld.log
看里面的 [ERROR]
举例:

[ERROR] Can’t start server: Bind on TCP/IP port: Address already in use

二:解决问题往往就一两个命令就可以了,
不要去修改文件权限和归属,不要去修改配置文件my.cnf,不要把简单的事情搞复杂了,

这个报错,一个命令就能解决 记好:
[root@xxx bin]# mysqld_safe &

如果,以后一旦重启又出现 无法启动的问题,请先执行一遍
[root@xxx opt]# systemctl stop mysqld
再去开启 mysqld 就可以了,
如果嫌麻烦可以编辑 /etc/rc.local 把mysqld 加进去

开机自启动。

[root@xxx etc]# vi /etc/rc.local

touch /var/lock/subsys/local
service mysqld start

January the 31th 2022 monday

补充,这篇文章也可以解决,centos 全新安装 MySQL
无法启动 mysqld 和使用 MySQL 的问题
[root@xxx ~]#
rpm -ivh MySQL-client-5.6.13-1.el6.x86_64.rpm
[root@xxx ~]#
rpm -ivh MySQL-server-5.6.13-1.el6.x86_64.rpm
这么安装的MySQL遇到无法启动的问题,都可以用这个方法解决

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:59:17  更:2022-02-01 21:00:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:29:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码