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,从而判断是否真正有这个实例在运行,更加稳妥
的方法是用进程通讯了,不过这样的话单单靠脚本就做不到了。

mysql报错排查总结的更多相关文章

  1. 解决MySQL报错ERROR 2002 (HY000)【转】

    今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...

  2. PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)

    如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...

  3. Asp.Net连接Mysql报错Out of sync with server

    Asp.Net连接Mysql报错Out of sync with server 原因:程序引用的MySql.Data.dll版本高于服务器版本 解决:下载一个低版本的MySql.Data.dll,项目 ...

  4. Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with

    Linux系统下启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with 摘要 Li ...

  5. 启动Mysql报错:Another MySQL daemon already running with the same unix socket.

    启动Mysql报错: Another MySQL daemon already running with the same unix socket. 删除如下文件即可解决 /var/lib/mysql ...

  6. Mysql报错注入原理分析(count()、rand()、group by)

    Mysql报错注入原理分析(count().rand().group by) 0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截 ...

  7. 解决:MySQL 报错:1045 - Access denied for user 'root'@'localhost'(using password YES)

    一.前言 今年疯狂迷上了开源,只要看到好的开源项目,就会不顾一切一股脑扎进去研究,五一期间发现一个很好的关于众筹的开源项目,但不巧,这个项目竟然是 PHP 写的,没学过 PHP,自然对这个开源项目毫无 ...

  8. 开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法

    开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法: 创建存储过程时 出错信息: ERROR 1418 (HY ...

  9. Navicat连接Mysql报错:Client does not support authentication protocol requested by server;

    Navicat连接Mysql报错:Client does not support authentication protocol requested by server: 刚安装Mysql,想用Nav ...

随机推荐

  1. Mysql 唯一性约束添加

    来自:  http://blog.csdn.net/yumushui/article/details/38960619 一.单列唯一约束 在一列上添加唯一约束,主要是让该列在表中只能有唯一的一行,例如 ...

  2. js实现UTC时间转为北京时间,时间戳转为时间

    用了阿里云的接口,发现其穿的日期是UTC格式的.需要转换. var utc_datetime = "2017-03-31T08:02:06Z"; function utc2beij ...

  3. 为什么NoSql快--磁盘顺序写

    数据写入方式 1.  update-in-place原地更新 2.  append-only btree/copy on write tree顺序文件末尾追加   数据被按照特定方式放置,提升读性能, ...

  4. tensorflow笔记之学习率设置

    在使用梯度下降最小化损失函数时,如果学习率过大会导致问题不能收敛到最优解,学习率过小,虽然可以收敛到最优解,但是需要的迭代次数会大大增加,在Tensorflow中,可以用指数衰减法设置学习率,tf.t ...

  5. linux install redis-cli

    ubuntu: sudo apt-get install redis-cli centos: sudo -i yum list redis yum install redis>>> ...

  6. centos sendmail 启动慢

    from:http://www.cnblogs.com/kerrycode/p/4717498.html 在 CentOS release 6.6 上启动sendmail服务时发现服务启动过程非常慢, ...

  7. 值得推荐的C/C++开源框架和库

    值得推荐的C/C++开源框架和库  转自:http://www.cnblogs.com/lidabo/p/5514155.html   - 1. Webbench Webbench是一个在Linux下 ...

  8. ServiceLoader实现原理

    在java中根据一个子类获取其父类或接口信息非常方便,但是根据一个接口获取该接口的所有实现类却没那么容易. 有一种比较笨的办法就是扫描classpath所有的class与jar包中的class,然后用 ...

  9. 【转】Java自学之路——by马士兵

    作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...

  10. How to read very large text files fast

    Question Does anyone know the fastest way to read large text files (10Mb) into a string.Readln is ju ...