zoukankan      html  css  js  c++  java
  • mysql报错排查总结

    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,从而判断是否真正有这个实例在运行,更加稳妥
    的方法是用进程通讯了,不过这样的话单单靠脚本就做不到了。
  • 相关阅读:
    相机标定/校正(Camera Calibration)
    彩色图像直方图均衡(Histogram Equalization)
    SQL--数据的检索
    SQL--数据的增删改
    SQL--数据库的创建与管理
    java学习笔记之异常、断言
    Mysql学习笔记(二)
    初学机器学习(一)
    Mysql学习笔记(一)
    软件课设Day15
  • 原文地址:https://www.cnblogs.com/wenyule/p/9653007.html
Copyright © 2011-2022 走看看