首先感谢在本次故障中阿铭对我的无私帮助,万分感谢!阿铭linux论坛:http://www.apelearn.com/study_v2/
 
问题描述:
公司安全部门扫描到数据库空密码漏洞,用户名密码随便输入,或者压根不输都能进入数据库。
 
处理步骤:
 
①:查看发现my.cf中开启了 --skip-grant-table    #怀疑是之前的管理员忘记了root密码才这样弄的。
 
②:使用如下命令更改数据库密码并写入。如果你知道root密码可以省掉,因为我没有root密码所以就更改了一下。

  UPDATE user SET Password = password('') where user = 'root';
FLUSH privileges;
③:停止数据库,将 --skip-grant-table 注释掉,并启动数据库。
 
④:使用如下命令登陆数据库,但是报错。

mysql -uroot -p123456
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
 
⑤:使用mysql -uroot可以进入数据库,但是只能看到test这个数据,下图是我在加 --skip-grant-table 下查到的所有数据看。
+-----------------------+
 
| Database              |
+-----------------------+
| information_schema    |
| activemq              |
| bjsdzx_real           |
| emcc                  |
| estonerhr_cms         |
| estonerhr_oa          |
| logistic              |
| logistic_shortmessage |
| mysql                 |
| performance_schema    |
| test                  |
+-----------------------+
 
注:在加 --skip-grant-table 时使用命令  select host, user, password from mysql.user; 得到如下信息。
 
+-----------------------+--------+-------------------------------------------+
| host                  | user   | password                                  |
+-----------------------+--------+-------------------------------------------+
| %                     | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost.localdomain | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1             | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1                   | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost             |        |                                           |
| localhost.localdomain |        |                                           |
| %                     | server | *866D5A029D62EC05ACC4584CE50F1CD2F50E0E82 |
+-----------------------+--------+-------------------------------------------+
7 rows in set (0.00 sec)
 
 
 
 
 
解决步骤:铭哥给我的答案是,在mysql.user表里两个空用户,删除之后改密码然后授权就可以了。
 
①在开启 --skip-grant-table 参数的情况下启动数据库并使用如下命令删除mysql.user表里的空用户。
     mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)
②使用如下命令查询mysql.user里面的内容,发现空用户已经被删除了。
     mysql> select host, user, password from user\G;
+-----------------------+--------+-------------------------------------------+
| host                  | user   | password                                  |
+-----------------------+--------+-------------------------------------------+
| %                     | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost.localdomain | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1             | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1                   | root   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| %                     | server | *866D5A029D62EC05ACC4584CE50F1CD2F50E0E82 |
+-----------------------+--------+-------------------------------------------+
5 rows in set (0.00 sec)
 
③使用如下命令更改root密码为123456

mysql> UPDATE mysql.user SET Password = password('') where user = 'root';  
④使用如下命令授权root用户权限
 mysql> grant all on *.* to 'root'@'%' identified by '';
⑤使用如下命令将内存信息写入文件

mysql> flush privileges;
⑥退出登录,注释掉my.cf文件里的--skip-grant-table
 
⑦重启mysql服务。
 
 
验证:
 
①使用如下命令进入mysql
mysql>mysql -uroot -p 123456;
②使用如下命令查询所有数据库,发现都能看得见了
mysql> show databases;
+-----------------------+
| Database              |
+-----------------------+
| information_schema    |
| activemq              |
| bjsdzx_real           |
| emcc                  |
| estonerhr_cms         |
| estonerhr_oa          |
| logistic              |
| logistic_shortmessage |
| mysql                 |
| performance_schema    |
| test                  |
+-----------------------+
11 rows in set (0.00 sec)
   
=============================至此结束,故障处理完毕===================
 
 
 
 
阅读(117)| 评论(0) | 编辑 |删除 |推送 |置顶

Mysql空用户导致数据库登陆故障处理 (原创帖,转载请注明出处)的更多相关文章

  1. Apache2.4权限配置(原创帖-转载请注明出处)

    ==================说在前面的话================= 1:这次实验使用的php项目是Discuz,Discuz的安装请参照:http://www.cnblogs.com/ ...

  2. Java程序员面试宝典1 ---Java基础部分(该博文为原创,转载请注明出处)

    (该博文为原创,转载请注明出处   http://www.cnblogs.com/luyijoy/  by白手伊凡) 1.    基本概念 1)         Java为解释性语言,运行过程:程序源 ...

  3. Apache开启状态查看页面(原创贴-转载请注明出处)

    =================写在前面的话================== 场景描述:有时候我们需要查看apache的运行状态,只需要开启apache的status功能就可以实现,但是stat ...

  4. Apache设置页面认证(原创贴-转载请注明出处)

    ================写在前面的话============== 1.本试验使用的apache版本是2.4.24 场景描述:网站后台管理页面比较重要,不应该任何人都让访问,所以对后台页面做认证 ...

  5. 后端Apache获取前端Nginx反向代理的真实IP地址 (原创贴-转载请注明出处)

    ====================说在前面的话==================== 环境:前段Nginx是反向代理服务器:后端是Apache是WEB项目服务器 目的:让后端Apapche获取 ...

  6. LAMP环境搭建 (原创帖,转载请注明出处)

    =============================说在前面的话==========================第一安装Mysql第二安装Apache-httpd第三安装PHP 第四配置PH ...

  7. Discuz的安装 (原创帖,转载请注明出处)

    ========================写在前面的话========================= 1.LAMP环境搭建请查看这篇日志:http://www.cnblogs.com/yic ...

  8. 原创centos7安装hadoop2.7(转载请注明出处)

    启用ip vi /etc/sysconfig/network-scripts/ifcfg-ONBOOT=yes 编辑DNS /etc/resolv.conf nameserver 114.114.11 ...

  9. 阿里云服务器SQLSERVER 2019 远程服务器环境搭建【原创】【转载请注明出处】

    之前做过本地服务器SQLSERVER环境搭建.局域网环境SQLSERVER搭建.一直没有尝试自己完成一个云端服务器的环境搭建.今天就根据一个成功的例子给大家分享一下. 一.云端数据库安装与搭建 我的服 ...

随机推荐

  1. mongodb数据库迁移

    如果遇到权限问题,终极解决办法:关掉权限! 如:assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }等错误

  2. web前端书籍

    前端开发 必看的书籍资料(转自CSDN郭小北V5) 一. html + css 这部分建议在 w3school 在线教程 上学习,边学边练,每个属性后还有在线测试. 然后过一遍之后可以模仿一些网站做些 ...

  3. sublime 配置jade高亮显示

    1.下载 Package Control.sublime-package 文件放入Packages文件目录下 2.control + shift + p   输入install package 3. ...

  4. Linux下browser-sync无法启动Chrome的解决方法

    笔者的环境: OS: Ubuntu Linux Browser: Chrome, Firefox 每次希望启动chrome浏览器,系统都会报错: browser-sync start -s --dir ...

  5. SqlServer删除表中重复记录

    重复记录:有两个意义上的重复记录 一是完全重复的记录,也即所有字段均重复的记录: 二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 1.对于第一种重复,比较容易 ...

  6. [原创]如何在Parcelable中使用泛型

    [原创]如何在Parcelable中使用泛型 实体类在实现Parcelable接口时,除了要实现它的几个方法之外,还另外要定义一个静态常量CREATOR,如下例所示: public static cl ...

  7. iOS控制器的生命周期分析和使用

    转自http://blog.csdn.net/qijianli/article/details/7826979 iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面 ...

  8. C# Console控制命令

    参考博客:C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数 禁用控制台关闭按钮,参考博客:禁用C#控制台应用程序的关闭按钮 参考博客:c# 控制台程序禁用关闭按钮完美解决 #region ...

  9. WinForm开发-界面控件到实体,实体到界面控件自动绑定

    在WinForm开发中,我们是不是为绑定界面控件的数据而每个控件每个控件的赋值?在保存修改时是不是也是每个控件每个控件的赋值到实体中?字段一多,那简直就是噩梦.有没有像Web中那样方便的方法直接就自动 ...

  10. js的一些实用的小技巧

    1.移动端自适应: 移动端的编写首先需要在header写入以下内容来表示页面是以不缩放的形式展示的: <meta name="viewport" content=" ...