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

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

时间 2013-08-03 11:55:00 博客园-原创精华区

原文  http://www.cnblogs.com/super-lucky/p/superlucky.html

主题 MySQL

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

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

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

时间: 2024-08-05 11:46:41

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

【JNI编程】使用javah命令生成头文件报错的解决方案

异常信息: 提示找不到某个类(要进行编译的类) 产生异常的开发环境: jdk7.0 ndk版本: android-ndk-r7b 解决方案: 在环境变量classpath中添加android.jar这个文件的目录 如:E:\eclipse\android-sdks\platforms\android-8\android.jar 问题描述: 刚开始研究JNI,然后让这个问题折腾了一上午,使用javah来生成java的class文件没问题,但是生成包含android特有的类库的class文件就出错,

MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction

2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm Bug重现方法: 部署好环境后,在无用户访问该系统的情况下,过一晚上,第二天再登录就会报出如下错误:Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC

解决mysql跟php不在同一台机器上,编译安装php服务报错问题:configure: error: Cannot find MySQL header files under /application/mysql.

在编译安装php服务时报错: configure: error: Cannot find MySQL header files under /application/mysql. Note that the MySQL client library is not bundled anymore! 前边搭建lnmp环境时,是把mysql和php安装在了同一台机器上,编译php的时候,需要通过参数 --with-mysql来指定mysql的安装路径,但在生产环境中,通常php和mysql是不在同一台

[转]轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)

本文转自:http://blog.csdn.net/zapzqc/article/details/42237935 由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最下方: 应用图标: 1.在整个项目所在文件夹下创建res文件夹,里边再分别创建两个文件夹android和ios. 2.针对Android平台:将我们的要替换的启动图标放如android文件夹下.可以分别起名为:mdpi.png(48*48),hdpi(72*72).xhdpi(96*96).xxhd

Tomcat 访问manager app报403 解决方案(虚拟机可以正常使用,外面访问报错)

虚拟机中Tomcat启动后,可以访问项目(虚拟机里面和外面都可以).虚拟机中能够正常进入manager app进行热部署工作,但是在外面能访问tomcat首页,点击manager app报403错误. 网上找许多都是说没有配置账号和密码,需要在tomcat 的conf中的tomcat-user.xml中增加账户.密码.权限 <role rolename="manager-gui"/> <user username="myuser" password

[解决方案]WebAPI+SwaggerUI部署服务器后,访问一直报错的问题

项目的背景:制作一批接口用来给前台app或者网站提供服务,因为WebApi是最近几年来比较流行和新颖的开发接口的方式,而且又属于轻型应用,所以选用它 部署的过程:建立了WebAPI项目并使用SwaggerUI为接口美化后,发布为文件系统并放到服务器上 展示的结果: 解决的过程:在当前错误的api中加入try{}catch{}方法,捕获一下异常信息根据异常信息进行判定 判定的结果:数据库sa账号登录失败,截图如下 解决的办法:在服务器上重新建立个登录的新账号xx,设置密码后,修改webapi下面的

Can&#39;t connect to local MySQL server through socket &#39;/var/lib/mysql/mysql.sock&#39; (111)

讲真,我不知道博客的意义是什么,但是众多博主写错误的东西,我就非常不爽了 笔者在django 2.1.8错误修改了mysql事务级别,另外安装了docker重启了防火墙等操作造成了如下错误 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) 那么这个错误是什么意思呢? 查询资料尽管centos7默认不支持mysql,默认支持的是mariadb,mariadb是mysql一个开源分

mysql数据库已启动,但是登录数据库报错

mysql数据库默认设置的是开机自启动,重启db01服务器后,想进入数据库查看数据信息:但是无法进入数据库,报错如下: [[email protected] ~]# mysql -uroot -p Enter password:  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2) 查看mysql数据库端口状态,尝试重启,关闭数据库,但是报错如下:

mysql报错:/usr/sbin/mysqld:unknown variable &#39;default-character-set=utf8&#39;

修改mysql的字符集时,为了将默认字符集设置为utf-8,便将/etc/my.cnf下[mysqld]加了一行 default-character-set=utf8, 但是在下次启动系统的时候,mysql登录不上,报错Can't connect to local MySQL serverthrough socket '/var/lib/mysql/mysql.sock'(2), 这时通过命令查找mysql.sock #find / -name mysql.sock , 没有查找到文件,mysq