mysql 登录错误 ERROR 2002 (HY000)
永久解决
修改/etc/my.cnf
添加以下内容到/etc/my.conf:
[client]
socket = /Data/mydata/mysql.sock
[mysqld]
socket = /Data/mydata/mysql.sock
有时候,当我们使用“mysql”、“mysqladmin”、“mysqldump”等命令管理数据库时,服务器抛出类似如下错误:
mysql -hlocalhost -uroot -pXXX
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
mysql -h 127.0.0.1 (PS:有些用户也会出现此问题)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
连接是不会产生标题中的错误的(第三种方式这里产生的是由于密码问题拒绝访问的错误信息)
二、错误产生原因解析:
这是由于我们连接数据库使用的主机名参数为“localhost”,或者未使用主机名参数、服务器默认使用“localhost”做为主机名。 使用主机名参数为“localhost”连接mysql服务端时,mysql客户端会认为是连接本机,所以会尝试以socket文件方式进行连接(socket文件连接方式,比“ip:端口”方式效率更高),这时根据配置文件“/etc/mysql.cnf”的路径,未找到相应的socket文件,就会引发此错误。
三、修复故障前准备:
1、看mysql服务是否在运行:
由于“socket”文件是由mysql服务运行时创建的,如果提示“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)”,找不到“socket”文件,我们首先要确认的是mysql服务是否正在运行。
#1:端口是否打开
[root@lam7 opt]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 57436 mysql 17u IPv6 160456 0t0 TCP *:mysql (LISTEN)
#2:mysqld服务是否正在运行(小七这边用的是centos7,所以会提示使用“/bin/systemctl status mysqld.service”)
[root@lam7 opt]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
mysqld.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
#3:如果mariaDB,同样方法查服务是否正在运行:
[root@lam7 opt]# service mariadb status
Redirecting to /bin/systemctl status mariadb.service
mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)
Active: inactive (dead)
#4mysqld服务是否正在运行(此现状是mysql服务正常运行)
[root@lam7 opt]# service mariadb status
Redirecting to /bin/systemctl status mariadb.service
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2016-11-22 20:09:01 CST; 10min ago
2、确定“socket”文件正确位置:
确定mysql服务正常运行后,产生此错误的原因只剩下“socket”文件路径不正确了,我们可以使用“find”命令或者“lsof”命令来确定socket文件的正确路径:
[root@lam7 opt]# lsof -c mysqld|grep sock$
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
mysqld 57436 mysql 18u unix 0xffff88000b55f440 0t0 160457 /opt/lampp/var/mysql/mysql.sock
[root@lam7 opt]# find / -name '*.sock'
/storage/db/mysql/mysql.sock
四、故障解决方法:
解决方案一:
修改“/etc/my.cnf”配置文件,在/etc/php.ini文件中"[MySQL]"项下找到"mysql.default_socket",并设置其值指向正确的mysql服务socket文件即可, 在配置文件中添加“[client]”选项和“[mysql]”选项,并使用这两个选项下的“socket”参数值,与“[mysqld]”选项下的“socket”参数值,指向的socket文件路径完全一致。如下:
[mysqld]
datadir=/storage/db/mysql
socket=/storage/db/mysql/mysql.sock
...省略n行
[client]
default-character-set=utf8
socket=/storage/db/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/storage/db/mysql/mysql.sock
修改完后,重启mysqld服务,即可解决此问题。
解决方案二:
使用“ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock”命令,将正确的socket文件位置,软链接到提示错误的socket文件路径位置,即可解决此问题:
[root@weops-05 /]# mysql -hlocalhost -uroot -pXX
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@weops-05 /]# ln -s /var/run/mysql/default.mysql.socket /var/lib/mysql/mysql.sock
[root@weops-05 /]# mysql -hlocalhost -uroot -pXXX
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 23304
Server version: 5.7.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
[root@weops-05 /]# ls -ltr /var/lib/mysql/mysql.sock
lrwxrwxrwx 1 root root 35 12月 5 21:46 /var/lib/mysql/mysql.sock -> /var/run/mysql/default.mysql.socket
[root@weops-05 /]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@weops-05 /]# 说明不是免密登录
mysql 登录错误 ERROR 2002 (HY000)相关推荐
- 解决一个MySQL登录报ERROR 2002 (HY000)错的问题
一.背景 今天上午使用mysql-5.7.21-el7-x86_64.tar.gz包安装MySQL的时候报错如下:ERROR 2002 (HY000): Can't connect to local ...
- 解决MySQL报错ERROR 2002 (HY000)【转】
今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...
- 解决Linux MySQL报错ERROR 2002 (HY000)
---------------------------------1--------------------------------- 在Linux安装MySQL有时候会出现[mysql]ERROR ...
- mysql 5.6 2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server
http://www.jb51.net/article/56952.htm 在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (H ...
- mysql错误码2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket
在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL se ...
- 解决mysql报错ERROR 2002 (HY000)
解决Mysql报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/my ...
- mysql 2002_解决MySQL报错ERROR 2002 (HY000)
今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...
- Mysql安装错误ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)
1.具体安装配置步骤可参考以下方法 https://blog.csdn.net/qq_40933711/article/details/107795888 2.在修改密码时,我出现了错误 ERROR ...
- mysql启动问题ERROR 2002 ( HY000 ) : Can‘t connect to local MYSQL server through socket /usr/local/mysql/
MYSQL启动报错:ERROR 2002 ( HY000 ) : Can't connect to local MYSQL server through socket /usr/local/mysql ...
最新文章
- 我的Android进阶之旅------gt;怎样在多个LinearLayout中加入分隔线
- springmvc+mybatis,在mybatis逆向工程的基础上使用模板自动生成controller层代码
- SAP Spartacus pageSlot一览
- 二级计算机vf题型,2010计算机等级考试二级VF考试题型与解题技巧
- c语言输入数字 获取星期几,输入字母,判断星期几,求大神指点
- 基于Packet Tracer 的校园网络设计方案(计算机网络与通信技术课程实验)(二)——IP网络仿真配置
- Linux下用ffmpeg轉PSP影片 (MP4/AVC格式)
- 吴恩达机器学习——第一周学习笔记
- Mac MySQL忘记密码解决办法
- 解决打开WORD时提示的:“无法复制文件:无法读源文件或磁盘”
- linux python 调试_Python安装与环境配置
- Scrapy 西瓜皮框架
- 【读点论文】Masked Autoencoders Are Scalable Vision Learners 完型填空应用到视觉处理上
- 手写数字识别——KNN算法的应用
- 微信朋友圈点赞如何设计测试用例,微信发语音消息,购物车,支付页面如何设计软件测试用例?
- 听说你们害怕异常?保姆式的图文手把手教你如何调试出程序的 bug
- python 识别滑块验证码
- Python实现生命游戏(Game of Life)
- 多相机视觉系统的坐标系统标定与统一及其应用
- Galera Cluster for MySQL 详解(二)——安装配置
热门文章
- 罗马神话缪斯_缪斯与边缘– Adob​​e Web Designer的工具
- [教程]域名解析之:SPF 记录设置说明
- PDF文件只能打印出第一页
- mc服务器物品id,我的世界物品id1period;12period;2 | 手游网游页游攻略大全
- Boltdb源码分析——bolt.Open
- python拯救爱情
- 7-5 冒泡法排序(20 分)
- Pygame开发打飞机游戏
- 拉钩教育课程管理系统接口文档
- 【VUE项目实战】32、权限管理-实现角色列表