码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-07-04 15:22:09      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

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系统。并最终解决问题,很有成就感,我喜欢这种感觉。

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

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

标签:

原文地址:http://www.cnblogs.com/stoneryan/p/4620590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!