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

  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/DBABlog/p/12926960.html
Copyright © 2011-2022 走看看