首先感谢在本次故障中阿铭对我的无私帮助,万分感谢!阿铭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. 学习Python的ABC模块(转)

    http://yansu.org/2013/06/09/learn-Python-abc-module.html 1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助a ...

  2. 设置默认访问项目的客户端的浏览器版本(IE版本)

    在项目开发部署中,发现浏览器不兼容现象,在不处理兼容性情况下让用户更好体验(IE浏览器) 我们来设置客户端默认访问项目的浏览器版本 如下所示的是不同IE版本下的效果截图比较: IE5.IE6下: IE ...

  3. HTML标签marquee实现滚动效果

    html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制.使用marquee标记不仅可以移动文字,也可以移动图片,表格等.只需要在<ma ...

  4. 在strust2 框架下,前端APP传过来的中文数据乱码问题

    public String addMessage() throws UnsupportedEncodingException{ Patient patient=new Patient(); patie ...

  5. HTML初级入门内容

    常用属性: Width=宽度 Height=高度 Size=大小 Color=颜色 Align=布局方向,值包括(top,bottom,left,right,center)上,下,左,右,中. Bor ...

  6. 移动应用抓包调试利器Charles

    转载:http://www.jianshu.com/p/68684780c1b0 一.Charles是什么? Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不 ...

  7. mysql入门

    mysql:关系型数据库的一种,用来存储数据: 一个仓库------一个数据库: 一个箱子------ 表: 进入mysql命令行:mysql -uroot -p(密码):查看数据库中所有表:show ...

  8. ASP.Net中的Web Resource

    http://support.microsoft.com/kb/910442,这是中文的,机器翻译的,不太容易看懂,英文的是:http://support.microsoft.com/kb/91044 ...

  9. NOI 1.5 41:数字统计

    描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2 ...

  10. multiwii 2.4配置页面中文注释

                                                                                                         ...