今天在为新的业务线搭架数据库后,在启动的时候报错
root@qsbilldatahis-db01:/usr/local/mysql/bin# ./MysqL
ERROR 2002 (HY000): Can't connect to local MysqL server through socket '/var/run/MysqLd/MysqLd.sock' (2)
在此记录一下,希望能够给遇到此问题的兄弟们提供一个解决问题的思路,有了思路后一步一步排查问题就比较容易了,但是我这个问题比较奇怪,如果有了解的兄弟,还不吝赐教。
首先介绍一下此问题出现的环境:
操作系统为:Ubuntu 14.04.5
数据库版本为:5.6.39-log
数据库安装方式为二进制安装
故障现象
数据库初始化后启动报错
root@qsbilldatahis-db01:/usr/local/MysqL/bin# ./MysqL ERROR 2002 (HY000): Can't connect to local MysqL server through socket '/var/run/MysqLd/MysqLd.sock' (2)
故障排查
一看数据库进程是否启动
如果数据库进程没有启动,也会报这个错
进程是存在的
二 看配置文件中socket文件的配置,并检查socket文件是否存在,权限是否正确
配置文件中socket 文件的位置配置在/tmp/MysqL.sock下
但是报错中去/var/run/MysqLd/MysqLd.sock 位置找配置文件,说明配置文件并没有生效,但是比如其他数据文件,日志文件的目录已经生效
三 看错误日志中是否提供了有价值的信息
查看错误日志中没有相关的报错
故障解决:
问题原因一直找不到,往上翻会话的时候看到数据库初始化完成后有以下输出,
我是按以下命令启动的,已经指定了配置文件的位置
./MysqLd_safe --defaults-file=/etc/my.cnf &
查看/etc/MysqL/my.cnf
确实是去找的该配置文件中socket的位置
oot@qsbilldatahis-db01:/etc/MysqL# cd /etc/MysqL/ root@qsbilldatahis-db01:/etc/MysqL# ls conf.d my.cnf root@qsbilldatahis-db01:/etc/MysqL# mv my.cnf my.cnf_bak
故障总结
其实现在我还是很纳闷,为什么我制定了配置文件袋额位置还会读取别的位置的配置文件呢?在数据库初始化后的输出有所体现,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。