首先感谢在本次故障中阿铭对我的无私帮助,万分感谢!阿铭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. GridView 实现LinkButton下载文件/附件

    <asp:TemplateField > <ItemTemplate> <asp:LinkButton ID="lbtnDownFile" runat ...

  2. TortoiseGit安装详解

    一:写该文章目的 最近换了一份新工作,新公司的源码管理都是使用GIT,习惯了之前的TFS和SVN进行项目源码管理和团队开发,第一次使用GIT进行团队开发和源码管理,颇有一些不习惯,花了一天时间终于把G ...

  3. Linux-002-执行命令时,提示: -bash: {命令}: command not found

    首先,此文不适应未安装的命令. 起因: 进行系统环境变量配置时,路径分割符配置错误,错将":"配置为";". 现象: 任意用户执行命令时,提示:command ...

  4. zabbix 自定义探索规则发现服务器上面的kvm虚拟机和对应的网卡

    安装完zabbix服务器之后 只有两个探索规则模版,挂载点探索和网卡探索 场景描述:想使用zabbix监控kvm虚拟机的网卡的流量情况, 获取虚拟机和网卡对应关系 虚拟机 S-1 virsh domi ...

  5. oracle客户端安装配置 tnsnames.ora文件

    Oracle客户端tnsnames.ora连接配置 Oracle90的在C:\Oracle\ora90\network\ADMIN下面 Oracel10g的在D:\oracle\product\10. ...

  6. C#写入日志信息到文件中

    为了在服务器上运行程序及时的跟踪出错的地方,可以在必要的地方加入写日志的程序. string folder = string.Format(@"D:\\{0}\\{1}", Dat ...

  7. 灵活运用SQL Server SSIS变量

    在SSIS开发ETL(Extract-Transform-Load),数据抽取.转换.装载的过程.我们需要自己定义变量 一.SSIS变量简介 SSIS(SQL Server Integration S ...

  8. ElasticSearch基本学习

    ES介绍 维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type.did-you-mean等搜索建议功能. 英国卫报使用Elasticsea ...

  9. LL谱面分析和难度标定

    LL谱面分析和难度标定 先介绍一下LL谱面的存储方式:TimeLine序列(简称TL序列),TL序列中的每一个元素(即音符)可以由一个C语言中的结构体来表示: struct note{ int lin ...

  10. Android targetSdkVersion 对生命周期的影响

    一直都认为当手机进入休眠时,Activity的生命周期会进入onPause()-->onStop()状态,但是今天偶然遇到了一个百思不得其解的问题,如果在AndroidMainfest.xml文 ...