mysql报错排查总结

Wesley13
• 阅读 805

mysql报错:

[root@zabbix ~]# mysql

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

问题排查总结:

问题1: mysqld 守护进程是否启动

解决:

[root@zabbix mysql]# service mysqld start

Starting mysqld: [ OK ]

[root@zabbix mysql]# /etc/init.d/mysqld status

mysqld (pid 2767) is running...

---成功启动--->解决!

--启动失败--->问题2

[root@zabbix mysql]# /etc/init.d/mysqld start

MySQL Daemon failed to start.

Starting mysqld: [FAILED]

[root@zabbix ~]# /etc/rc.d/init.d/mysqld status 

mysqld is stopped

问题2:由于异常退出,导致产生了mysql僵尸进程

        再次启动时失败,

解决:

    清除/var/run/mysql/下的僵尸进程 mysqld.pid

    和 /var/lock/subsys/mysqld  文件

    [root@zabbix mysqld]# ll /var/lock/subsys/mysqld 

    -rw-r--r--. 1 root root 0 Sep 15 22:17 /var/lock/subsys/mysqld

问题3:/var/lib/mysql/ 日志目录满了

解决:

    删除目录下的文件,

    或者修改my.cnf配置文件,关闭日志输出

问题4: 配置文件/etc/my.cnf 的    socket 路径不对

        不是 /tmp/mysql.sock

    [root@zabbix mysql]# egrep -i socket /etc/my.cnf 

    socket = /var/lib/mysql/mysql.sock

    socket = /var/lib/mysql/mysql.sock

    # All interaction with mysqld must be made via Unix sockets or named pipes.

解决:

    创建软连接到对应文件或修改配置文件的socket路径

    ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

问题5:mysql 的进程运行目录不存在,或被删除

解决:

[root@zabbix mysql]# mkdir /var/run/mysqld

[root@zabbix mysql]# chmod 777 /var/run/mysqld/

问题6:权限问题,对应目录的权限

[root@zabbix mysql]# chmod 777 /var/lib/mysql

问题7:关闭SElinux

[root@zabbix mysqld]# setenforce 0

....

进程相关知识补充

var/lib/mysql

这些是mysql 的log文件,需要有什么事故的时候可以用这些文件来恢复数据,但是用到的时候会很少,可以修改配置文件不生成bin-log文件,默认的配置文件为my-huge.cnf 在你的/var/lib/mysql/support-files/目录下,vi my-huge.cnf 搜索log-bin 在前面加#号注释掉后就不会产生,log-bin文件了。

/var/lock/subsys作用

关于/var/lock/subsys目录

    总的来说,系统关闭的过程(发出关闭信号,调用服务自身的进程)中会检查/var/lock/subsys

    下的文件,逐一关闭每个服务,如果某一运行的服务在/var/lock/subsys下没有相应的选项。在系统关闭的时候,会像杀死普通进程一样杀死这个服务。

    通过察看/etc/rc.d/init.d下的脚本,可以发现每个服务自己操纵时都会去查看/var/lock/subsys下相应的服务。

    很多程序需要判断是否当前已经有一个实例在运行,这个目录就是让程序判断是否有实例运行的标志,比如说xinetd,如果存在这个文件,表示已

经有xinetd在运行了,否则就是没有,当然程序里面还要有相应的判断措施来真正确定是否有实例在运行。

    通常与该目录配套的还有/var/run目录,用来存放对应实例的PID,如果你写脚本的话,会发现这2个目录结合起来可以很方便的判断出许多服务

是否在运行,运行的相关信息等等。

    实际上,判断是否上锁就是判断这个文件,所以文件存在与否也就隐含了是否上锁。 而这个目录的内容并不能表示一定上锁了,因为很多服务在启

动脚本里用touch来创建这个加锁文件,在系统结束时该脚本负责清除锁, 这本身就不可靠(比如意外失败导致锁文件仍然存在),我在脚本里一般是结

合PID文件(如果有PID文件的话),从PID文件里得到该实例的PID,然后用ps测试是否存在该PID,从而判断是否真正有这个实例在运行,更加稳妥

的方法是用 进程通讯了,不过这样的话单单靠脚本就做不到了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这