zoukankan      html  css  js  c++  java
  • 解决MySQL报错ERROR 2002 (HY000)


    今天在为新的业务线搭架数据库后,在启动的时候报错

    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)

    故障排查

    一看数据库进程是否启动

    如果数据库进程没有启动,也会报这个错

    进程是存在的image.png

    二 看配置文件中socket文件的配置,并检查socket文件是否存在,权限是否正确

    image.png

    配置文件中socket 文件的位置配置在/tmp/mysql.sock下

    但是报错中去/var/run/mysqld/mysqld.sock 位置找配置文件,说明配置文件并没有生效,但是比如其他数据文件,日志文件的目录已经生效

    三 看错误日志中是否提供了有价值的信息

    查看错误日志中没有相关的报错


    故障解决:

    问题原因一直找不到,往上翻会话的时候看到数据库初始化完成后有以下输出,


    image.png

    难道是因为数据库启动的时候读了别的位置的配置文件?

    我是按以下命令启动的,已经指定了配置文件的位置

    ./mysqld_safe --defaults-file=/etc/my.cnf &

    查看/etc/mysql/my.cnf

    确实是去找的该配置文件中socket的位置

    image.png


    将/etc/mysql路径下的配置文件重命名后

    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

    再次进入mysql命令行没有报错,问题解决

    image.png



    故障总结

    可以用以下命令查看MySQL数据库读取配置文件的默认顺序,

    image.png

    其实现在我还是很纳闷,为什么我制定了配置文件袋额位置还会读取别的位置的配置文件呢?在数据库初始化后的输出有所体现,

    这是问题解决就是把其他路径下的配置文件重命名

    image.png

  • 相关阅读:
    C#加密算法汇总
    解决无法连接到visual studio开发服务器的问题
    javascript
    js仿移动端的下拉刷新,上拉加载更多。
    博客园第一篇博文——做一个思考行动派
    $("<div />")代表的意思
    ini_set 设置php配置项 在windows和linux下的不同
    Java入门1
    Java入门2
    jQuery获取元素上一个、下一个、父元素、子元素
  • 原文地址:https://www.cnblogs.com/DBABlog/p/12926960.html
Copyright © 2011-2022 走看看