问题描述:

系统安装mysql的过程中,没有提示配置用户名和密码相关的信息,安装完毕后,登录报错。

表现现象为:

mysql -u root -p

[输入root密码]

界面提示:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

问题解决过程:

1. 首先尝试了通过绕开数据库权限校验的流程,直接进入数据库后再重新配置用户名和密码

sudo /etc/init.d/mysql stop

sudo mysqld_safe --skip-grant-tables

mysql -u root 尝试登录,

没有作用,还是会提示无权限访问数据库

2. 绕开权限校验行不通,原因无法定位,进一步想通过重新安装数据库的方法解决,

主要是怀疑上次安装中有部分系统原来自带的用户残留信息或配置导致目前的问题,所以重装前,先卸载和清除原有安装。

sudo apt-get remove mysql-*

dpkg –l | grep ^rc | awk ‘{print $2}’ | xargs dpkg –P

sudo apt-get install mysql-client mysql-server

安装过程中发现,还是没有提示配置用户或者登录密码信息,“不详的预感”……

果然,登录发现还是不行,再次提示Access denied 。

3. 用“mysql安装不提示配置密码”去检索类似问题,发现另一个方法,找到了mysql的默认登录信息。

/etc/mysql/debian.cnf中,使用黄色框中的登录信息即可登录。

4. 登录mysql后,分析存储登录信息的user表,分析下为何root之前登录失败。

use mysql

show tables;

select host,user,authentication_string,plugin from user;

不难看出,root这个用户的密码串为空,校验plugin方式为“auth_socket”,查阅mysql官方文档(https://dev.mysql.com/doc/refman/5.7/en/socket-pluggable-authentication.html#socket-pluggable-authentication-usage),

对 auth_socket 校验方式的说明如下:

auth_socket方式下,client端通过socket方式访问mysql,server端通过socket file的方式校验,对client端的username进行校验即可,也就是说,这种方式不是本地密码登录使用的。

因此,将该方式修改为“mysql_native_password”,并配置root的登录密码,即可使用root用户本地密码的方式进行mysql访问。

最新文章

  1. yii2.0场景的使用
  2. Git 在团队中的最佳实践--如何正确使用Git Flow[转]
  3. C语言里面捕获错误机制
  4. Anchor 对象
  5. Android——网格布局仿计算器
  6. marquee 笔记
  7. scope重定义
  8. read/load
  9. 最全Oracle环境搭建之.NET程序员初遇Oracle
  10. B-end
  11. 在Spring Boot中使用数据库事务
  12. RabbitMQ (四) 路由选择 (Routing)
  13. 七、Android动画
  14. 打造实时数据集成平台——DataPipeline基于Kafka Connect的应用实践
  15. 隐藏用户建立(Powershell)
  16. C语言按位运算符
  17. [Jenkins Git] 在Jenkins上拉代码总是失败,跑去本地看,提示输入用户名和密码,但是Jenkins上已经配置了正确的用户名和密码
  18. 《JavaScript》forEach()和map()
  19. ROS知识(6)----基于Eclipse开发
  20. ubuntu 中安装redis

热门文章

  1. Android Support v4,v7,v13的区别和应用场景
  2. python3中使用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决办法
  3. 开发者不容错过的10款免费JavaScript游戏引擎
  4. 旧文备份:怎样利用好单片机上的存储器资源来实现OD的存储与访问
  5. 第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列
  6. iOS程序猿如何快速掌握 PHP,化身"全栈攻城狮"?
  7. 开发必看 | iOS开发常用设计模式!
  8. DNS介绍与安装使用
  9. linux shell 部分问题解决方法
  10. java.lang.UnsupportedOperationException 原因以及解决方案