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

环境: Deepin15.7桌面版

在上次升级完系统之后的出现的问题,登录MySQL数据库的时候出现以下报错提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2),用ps aux|grep mysql命令查看,进程也并没有开启。
在网上查了一些资料,通过mysql --help查看配置文件的位置,发现 sudo gedit /etc/my.cnfsudo gedit ~/.my.cnf都是空的文件,而sudo gedit /etc/mysql/my.cnf中也缺配置数据(各种端口、启动信息都没有)。
so
还是重装吧!

sudo apt-get remove --purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-server mysql-client

搞定。
然后……登录试试
首次登陆mysql -u root,还没有密码。
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
emmm 好吧。
但查看进程已经开启了
在这里插入图片描述
试试sudo mysql -u root,成功登录。
下面来设置以下root的密码:
mysql> set password for root@localhost = password('新密码');
OK~
下次便可以使用sudo mysql -u root -p来进行登录,需要输入登录密码。
然而还是觉得有sudo 很是麻烦……emmm
查了一下:
先用sudo 登录进去,
用命令select user, plugin from mysql.user;查看一下usr表
在这里插入图片描述
错误的起因就是在这里, root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password。
我们来修改一下类型:

mysql> update mysql.user set authentication_string=PASSWORD('咳咳 保密'), plugin='mysql_native_password' where user='root';
Query OK, 4 rows affected, 1 warning (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

我们退出再重新登录试试:

在这里插入图片描述
搞定!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值