记一次服务停止后-mysql服务启动失败;

服务器:unbuntu16.04,阿里云

起因:运行了快三年的系统突然登陆不进去了,初步查看是由于服务端挂了。

入坑:由于没有服务器密码,只能在阿里云网页端重置服务器密码

第一阶段:此时以为再重启一下服务端可以(之前有过,不过是在开始初期),然而,在查看tomcat启动日志时爆出了不能连接数据库的问题,于是乎,在服务器上登陆mysql ,结果报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

怎么办呢,看看这个啥文件先,然而查到是这个文件不存在。查了一下,通过百度得知

然后试了下面的办法连接

mysql -h 127.0.0.1 -u root -p 

还是没有用,还爆了2003错误,最后的最后通过查看msyql启动日志才发现问题!

走了很多弯路,但也学到了点,以下是总结:

1.要多看相关服务的日志,最有效,然后再对症下药

2.要坚信之前运行了这么久都没问题肯定没问题,多看系统层面的东西

3.不能忘记备份,任何有用的

4.解决的时候多思考,从问题本质出发,看报错,看日志/var/log/mysql/error.log

5.不能怕走弯路,还是能学到东西的。但也要高效查问题,抓住问题关键查资料。

------------------------------------------------------------------------------------------------------------------------------------------------------------------

实际问题:是因为重启服务器再启动mysql会重新生成mysql.socket文件,而此时磁盘太满了已经写不下了(也是服务器重启贼慢的原因)。

造成磁盘写满是由于tomcat 的日志太多了。数据处理日志太多,所以后面就关闭了数据接收端的Catalina日志,关闭日志参考

https://blog.csdn.net/hknaruto/article/details/79953725

------------------------------------------------------------------------------------------------------------------------------------------------------------------

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket 解决办法

故障描述:

启动mysql 报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
 

1.先查看mysql启动状态

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

2.mysql.sock位置查找与验证?

# find / -name mysql.sock
/Data/mydata/mysql.sock
验证目录是否正确
#mysql -u root -p -S /Data/mydata/mysql.sock

备注:-S参数socket file文件验证

3.验证mysql.sock文件权限和用户是否正确?
如果是权限问题,则先改变权限 
#chown -R mysql:mysql /Data/mydata/mysql.sock


[root@localhost ~]# /etc/init.d/mysqld start
启动 MySQL: [ OK]

4.永久解决:(注:要注意文件夹权限问题,可用chmod 777 file)

修改/etc/my.cnf(不同版本的mysql配置文件可能一样)

添加以下内容到/etc/my.conf:
[client]
socket = /Data/mydata/mysql.sock
[mysqld]

socket = /Data/mydata/mysql.sock

------------------------------------------------------------------------------------------------------------------------------------------------------------------

Linux命令小记:

find / -name aa*    查找根目录下文件名为aa开头的文件

df  查看整体磁盘使用情况

df -lh清楚磁盘使用情况

df  -a 是全部的文件系统的使用情况

df  -i显示inode信息

df -k 已字节数显示区块占用情况

ls -lh 查看当前文件夹的占用情况

netstat -tunlp |grep 8000  查看端口占用

-t (tcp) 仅显示tcp相关选项
                                 -u (udp)仅显示udp相关选项
                                 -n 拒绝显示别名,能显示数字的全部转化为数字
                                 -l 仅列出在Listen(监听)的服务状态
                                 -p 显示建立相关链接的程序名

发布了22 篇原创文章 · 获赞 12 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章