mysql Access denied for user 'root'@'localhost'问题解决
问题描述:
系统安装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访问。


mysql Access denied for user 'root'@'localhost'问题解决的更多相关文章
- mysql Access denied for user root@localhost错误解决方法总结(转)
mysql Access denied for user root@localhost错误解决方法总结(转) mysql Access denied for user \'root\'@\'local ...
- MySQL Access denied for user root@localhost 解决方法
今天把本地开发的项目(ThinkPHP 3.2.3)移到虚拟机上(CentOS 6.6,LNMP 1.2,MySQL 5.6.23),配置好 MySQL 之后访问首页,出现: 此时 MySQL 的用户 ...
- 解决mysql“Access denied for user 'root'@'localhost'”
解决mysql“Access denied for user 'root'@'localhost'” 分类: linux 2011-01-14 00:23 147547人阅读 评论(3) 收藏 举报 ...
- mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下。
mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下. ...
- MySql Access denied for user 'root'@'localhost' (using password:YES) 解决方案
关于昨天下午说的MySQL服务无法启动的问题,解决之后没有进入数据库,就直接关闭了电脑. 今早打开电脑,开始-运行 输入"mysql -uroot -pmyadmin"后出现以下错 ...
- mysql Access denied for user root @localhost (using password:YES)错误
C:\AppServ\MySQL> mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'r ...
- mysql Access denied for user root@localhost错误解决方法总结
原文:http://www.111cn.net/database/mysql/44142.htm Access denied for user 'root'@'localhost' (using pa ...
- mysql—Access denied for user 'root'@'localhost' (using password:NO)
安装mysql未设置初始密码,登录提示Access denied for user 'root'@'localhost' (using password:NO): 解决方案: sudo /etc/i ...
- ubuntu mysql Access denied for user root@localhost
解决办法: 1. vim mysqld.cnf 路径:/etc/mysql/mysql.conf.d 在[mysqld]下添加skip-grant-tables 2. 重启mysql服务 servi ...
随机推荐
- Ghostbusters(并查集,最小生成树)
Ghostbusters 时间限制: 1 Sec 内存限制: 128 MB提交: 33 解决: 7[提交] [状态] [讨论版] [命题人:admin] 题目描述 The Bureau of Ap ...
- Mac 中显示资源库(Library)文件夹目录的几种方法
Mac中Library目录在10.6.7系统之后默认隐藏的,要想找到此文件夹有如下几种方法: 1. 用命令可以使其显示: 在终端中执行命令: chflags nohidden ~/Library ...
- matlab所需插件
1
- CUDA线性内存分配
原文链接 概述:线性存储器可以通过cudaMalloc().cudaMallocPitch()和cudaMalloc3D()分配 1.1D线性内存分配 1 cudaMalloc(void**,int) ...
- oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子
1.解决问题:TNS或者数据库不能登录. 最简单有效方法:使用oracle系统提供的工具 netca 配置(把原来的删除掉重新配置) $netca 2.然而,仍有疑问:如何指定'l ...
- System.Web
如果 using System.Web:还是调用不出来其中的类,请在引用的位子添加 System.Web 引用,有的版本不自带这个命名空间. 类: HttpResponse类 用于绘画验 ...
- jquery操作元素的位置
.offset() 在匹配的元素中,获取第一个元素的当前坐标,或设置每一个元素的坐标,坐标相对于文档. .offset() 这个不接受任何参数. var offset = p.offset(); // ...
- python读写dbf数据库
dbf数据库作为一种简单的数据库,曾经广泛使用.现在在金融领域还是有很多的应用之处,工作中遇到此类的问题,在此记录一下. 1. 读取dbf ''' 读取DBF文件 ''' def readDbfFil ...
- 自定义动画函数JQuery实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 协程实现tcp两个客户端的通讯
import socket import gevent from gevent import monkey monkey.patch_all() def cb_work(recv_num,send_n ...