Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 629|回复: 0

mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错

[复制链接]
  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-4-27 15:01:22 | 显示全部楼层 |阅读模式

    mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错 - superlucky

    本人还是个菜鸟,下面是我的经验之谈,能解决一些问题,有不对的地方,敬请斧正。

    我的是CentOS6.3+MySQL5.1.57。

    重启了一次服务器后, 使用> mysql -u root -p登陆是出现下面的错误:

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

    于是,我检察mysql状态:

           >  /etc/rc.d/init.d/mysqld  status  

              显示stop,未运行。

           >/etc/rc.d/init.d/mysqld  restart

              Stopping mysqld: [ OK ]

              MySQL Daemon failed to start.

             Starting mysqld: [ FAILED]

           >ps -ef | grep mysql

             root 28221 27474 0 14:18 pts/0 00:00:00 grep mysql   只有这一条

    至此,我可以确定,mysql无法启动。

    我开始排错,首先发现/tmp/mysql.sock不存在

            >vim /etc/my.cnf

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

              /var/lib/mysql/mysql .sock同样不存在

            >find / -name mysql.sock

              显示为空,未查询到mysql.sock文件,mysql.sock文件丢失了。

    我看网上有人说 mysql.sock套接字文件 可以简单地通过重启服务器重新创建得到它,

             >init 6      重启命令

               重启后发现错误还是那样,没有任何改变,mysql.sock重启服务器未自动生成。

    接下来了解到mysql.sock是一个临时文件,在mysql启动时会自动生成,我的服务器未启动,自然就没有mysql.sock文件。

    我尝试 安全启动模式, mysqld_safe试图通过工作目录找到服务器和数据库,但 mysqld_safe还是失败。

           >mysqld_safe &
             Starting mysqld daemon with databases from ....../mysql/var 
             STOPPING server from pid file    .......pid

             130802 15:17:11 mysqld ended

    各种命令尝试无效的情况下,我开始了本次最大的收获----学会看错误日志。

    在错误日志中,启动失败的原因极为明显,file ‘./mysql-bin。000004’ not found,failed to open!

      mysql开启了bin日志功能,到数据库根目录查看该文件是存在的,可能是文件权限的问题。

           >chown -R mysql:mysql /....../mysql/var

           > mysqld_safe &

           >/etc/rc.d/init.d/mysqld  restart

              Stopping mysqld: [ OK ]

             Starting mysqld: [ OK]

       成功启动了!~

      此时mysql.sock文件出现了,在/var/lib/mysql/mysql .sock。如下图所示, 以”s”开头的文件都是socket文件。

              > mysql -u root -p

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

    /tmp/mysql.sock

              解决这个错误很简单,因为/tmp/mysql.sock不存在, 用这样的方法:

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

    以”l”开头的文件是软链接文件。或者 可以通过修改/etc/my.cnf文件来修正它。

       成功解决了!~

    就是这样一个问题折腾了我这么久,错误日志让它无所遁形。查看错误日志可以明确问题所在,而不是像我之前那样盲目的找错。

    俗话说授人以鱼不如授人以渔,学会查看日志,你也可以方便快捷的解决问题了。

    错误使人进步,我与这个错误斗争了四个多小时,对linux的 “一切皆文件”这句话有了更深的了解,对我学习文件系统管理(目录树)有很大的帮助, 让我的思维真正的从windows操作系统转向成linux系统。并最终解决问题,很有成就感,我喜欢这种感觉。

    希望能对阅读的你有所帮助,谢谢!~

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-14 09:45 , Processed in 0.068962 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表