MySQL root密码正确,却怎么也无法从本地登录MySQL,提示

1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

这里后来经高人指点才发现mysql库中的user表缺少一个root指向host:localhost的数据项,只有一个root指向host:主机名的数据项,故怎么也无法利用root账户登录MySQL。

总结一点就是root账户缺失了访问localhost主机的账户信息,导致无法本地登录。

那有什么办法恢复root登录呢?

这里记录一下今天遇到的纠结事情:

首先kill掉MySQL进程然后在启动mysql的参数中加入

--skip-grant-tables

会发现这时无密码就可以登录mysql了。

当然我们还必须修复root账户丢失的数据项。

这里有两种解决方案:

第一种是因为root账户初始的时候有3条记录,包含root对应localhost,hostname,127.0.0.1三条账户数据,我们可以update host为其他两项中一项为localhost即可。

第二种是直接insert一条记录,host为localhost即可

总结一下:即使root的host包含了主机名,127.0.0.1那么依然是无法正常登录的,这里必须要有localhost的host才行。

如果上面办法还是无法正常登录我们可尝试另一种办法

在本地用mysql命令直接回车可以进入mysql,但是里面只有test和information_schema数据库,没有mysql等数据库,使用use mysql报如下错:

mysql> use mysql

ERROR 1044 (42000): Access denied for user "@'localhost' to database 'mysql'

意思是说没有指定user,没有权限访问数据库mysql。

那么用root登录呢,输入正确的密码报如下错:

[root@228827 ~]# mysql -uroot -p123456

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

密码正确的情况下,mysql数据库已经禁止了root用户在本地的登录权限了。

使用root用户通过主机127.0.0.1登录就可以正常进入mysql,127.0.0.1和localhost对mysql数据库来讲是不同的主机,

[root@228827 ~]# mysql -uroot -p123456 -h 127.0.0.1

这让我想起了mysql下的user表。

我们要进mysql看user表,一种方法可以通过上面的命令,如果不行,可以用下面的命令启动数据库,缺省密码进入

代码如下

[root@228827 ~]# /etc/init.d/mysql stop

[root@228827 ~]# /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &

[root@228827 ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 1

Server version: 5.1.57 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> use mysql

Database changed

mysql> select user,host,password from user where user='root';

+——+——————-+——————————————-+

| user | host | password |

+——+——————-+——————————————-+

| root | % | *A50E066E106320CF4142 |

| root | centos | *A50E066E106320CF4142 |

| root | 127.0.0.1 | *A50E066E1063608320CF4142 |

+——+——————-+——————————————-+

3 rows in set (0.12 sec)

发现user表host字段中没有localhost,但是我的理解是%代表所有的主机都能登录的,为什么localhost不能呢,同样的情况我在5.0.45版的mysql上面做实验就不会发生localhost无法登录,我当前用的是5.1.57版的,难道是版本的问题?

接下来的修改很明显了:

代码如下

mysql> update user set host='localhost' where user='root' and host='%';

mysql> flush privileges;

OK,退出mysql,重启mysql就解决问题了

(责任编辑:大宝库)

密码正确 mysql 无法登录_MySQL密码正确却无法本地登录怎么办相关推荐

  1. mysql v8 漏洞_mysql'密码安全 - osc_v8gts6gd的个人空间 - OSCHINA - 中文开源技术交流社区...

    MYSQL数据库的安全配置 MYSQL密码的修改与恢复 MYSQL数据库密码的修改 Mysql5.7以下默认root登录密码为空,安装完成之后首先需要修改root的登录密码. # mysqladm – ...

  2. linux 修改mysql root密码_Linux mysql如何更改root密码

    说到root密码,很多人想到的是电脑系统的root账号密码,其实mysql也有root密码,那么在Linux系统中,mysql要如何修改root密码呢?特别是忘记了root密码要怎么办? 通过登录my ...

  3. mysql用户登录和第三方登录_mysql 用户表结构设计,第三方登录

    说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地 ...

  4. mysql 建索引_mysql数据库正确建立索引及使用

    普通mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的mysql了.其中优化mysql的一个重要 ...

  5. mysql截断表_mysql – 如何正确截断表?

    我正在使用带有ruby的datamapper将数据存储到某些表中. 有几个表有非常大量的信息,我想在用户"重建数据库"时清除它们(它基本上删除了所有内容并重新计算数据). 我最初尝 ...

  6. mysql漏洞包_MySQL npm包中的本地文件泄露漏洞

    "A pure node.js javascript Client implementing the MySQL protocol." 漏洞 在某次安全评估中,Synacktiv专 ...

  7. mysql 无法登陆_MySQL root用户无法登录原因及解决办法

    MySQL root密码正确,却怎么也bai无法du从本地登录MySQL登录提示ERROR 1045 (28000): Access denied for user 'root'@'localhost ...

  8. mysql添加用户和密码

    首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的. 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用.     用户:phplamp  用户数据 ...

  9. MySQL从安装改密码到navicate远程连接,以及修改存储路径

    1.安装改密码:mysql安装以及修改密码 2.mysql建立远程连接:navicate远程连接 3.修改了mysql存储路径后的2002问题: 解决办法:mkdir -p /var/run/mysq ...

  10. MySQL 5.7 忘记密码

    MySQL 5.7 忘记密码 原文:MySQL 5.7 忘记密码 MySQL 5.7 忘记密码 # 关闭 mysql 服务 net stop mysql# 在命令行输入以下命令, 输入后新建一个 CM ...

最新文章

  1. 深入jQuery中的data()
  2. linux shell 加、减、乘、除
  3. linux禁止客户端上传文件_实战 FastDFS Java 客户端上传文件
  4. java删除一级域名下cookie_java操作cookie示例(删除cookie)
  5. python学习day2:类与对象
  6. 电子计算机和多媒体教材分析,人教新课标:电子计算机与多媒体教材分析
  7. 【操作系统】多线程与多任务的比较
  8. android系统(9)---Android Sensor 体系架构
  9. MySQL用户的增删改权以及root远程连接
  10. STC学习:串口通信
  11. Proteus8.6软件安装教程
  12. 嵌入式linux交叉开发环境,构建嵌入式Linux交叉开发环境
  13. reviewboard 介绍
  14. 《生物信息学:导论与方法》--本体论、分子通路鉴定--听课笔记(十九)
  15. 零点城市社交电商2.1.7.4 VUE全端+全开源+全插件+独立版
  16. 一份超详细的IBM公司JAVA基础面试题附答案以及解析(题库)
  17. 腾讯 AI Lab 2021 年度回顾
  18. 中病毒spoolsv.exe
  19. 基于卷积神经网络的猫狗识别系统的设计与实现
  20. R中因子(factor)

热门文章

  1. c语言 电阻器的分类,电阻器的分类
  2. js截取中英文字符串
  3. UML类图中各种箭头和线条的含义和用法
  4. python实现分层随机抽样算法_python分层随机抽样
  5. 360路由器v2刷第三方固件_不走弯路:小米路由器3G 刷Padavan固件简单教程
  6. Office 2016出现加载DLL失败或者库未注册的问题:0x8002801D或者0x80029C4A
  7. 饥荒dns服务器未响应,DNS服务器未响应怎么办
  8. 在 Kotlin 序列化中使用 DataStore
  9. html页面睡眠函数,JavaScript sleep睡眠函数
  10. 微软开源项目NeuronBlocks:像搭积木一样构建自然语言理解深度学习模型