数据库服务无法启动,错误日志如下,谁知道怎么解决

我还是个新手,以下是我的一些经验,如有错误请指正。
我的是CentOS6.3+MySQL5.1.57。
重启服务器后,使用>mysql-uroot-p登录时出现以下错误:ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)于是我检查了mysql状态:>/etc/rc.d/init.d/mysqldstatus显示已停止且未运行。
>/etc/rc.d/init.d/mysqldrestartStopmysqld:[确定]MySQLDaemon启动失败。
:[失败]​>ps-ef|grepmysql​root2822127474014:18pts/000:00:00grepmysql只有这个。
至此,可以确认mysql无法启动了。
我开始排查,首先注意到/tmp/mysql.sock不存在>vim/etc/my.cnfsocket=/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock也不存在。
>find/-namemysql.sock显示为空白。
找不到mysql.sock文件,mysql.sock文件丢失。
我看到网上有人说只需重新启动服务器就可以重新创建mysql.sock套接字文件。
重启后发现错误依旧,没有任何变化。
服务器重启后自动创建。
接下来,我了解到mysql.sock是一个临时文件,是在我的服务器未启动时自动创建的,所以自然没有mysql.sock文件。
我尝试了安全启动模式,mysqld_safe尝试通过工作目录找到服务器和数据库,但mysqld_safe仍然失败。
>mysqld_safe&Startmysqlddaemonwithdatabasesfrom.../mysql/varSTOPPINGserverfrompidfile...pid13080215:17:11mysqldends当许多不同的命令尝试失败时,这次我开始得到最大的好处——学习如何查看错误日志。
错误日志中,启动失败的原因极其明确,file‘./mysql-bin.000004'找不到,打不开!MySQL启用了bin日志功能。
进入数据库根目录查看该文件是否存在。
这可能是文件权限问题。
>chown-Rmysql:mysql/....../mysql/var>mysqld_safe&>/etc/rc.d/init.d/mysqldrestart停止mysqld:[OK]启动mysqld:[OK]启动成功!~mysql.sock文件现在出现在/var/lib/mysql/mysql.sock中。
如下图所示,以“s”开头的文件都是socket文件。
>mysql-uroot-pERROR2002(HY000):UnabletoconnecttolocalMySQLserverthroughsocket'/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提示ERROR2002(HY000):Can'tconnectto

1、首先检查/etc/rc.d/init.d/mysqldstatus,看看mysql是否启动。
还要检查是否存在任何权限问题。
2.确保mysql.sock位于该位置。
mysql用户名-p-S/var/lib/mysql/mysql.sock3,尝试:servicemysqldstart

登录mysql报ERROR2002(HY000)错误怎么办?

解决无法通过mysql.sock连接MySQL问题的主要建议是,无法通过'/tmp/mysql.sock'连接服务器,标准PHP配置使用'/tmp/mysql.sock'。
但有些mysql的安装方法会将mysql.sock放在/var/lib/mysql.sock或者其他地方/etc/my.cnf中,打开文件可以看到如下内容:[mysqld]socket=/var/lib/mysql.sock已修改。
这样就可以了,但是会导致mysql程序无法连接等其他问题。
php使用另一个mysql.sock来连接,你可以自己这样做。
自己找一下或者用这个方法:ln-s/var/lib/mysql/mysql.sock/tmp/mysql.sock成功了,那ln-s/var/lib/mysql/mysql.sock/tmp/mysql.sock就OK了!