Mysql不需要身分識別驗證便可遠端連線故障

來源:互聯網
上載者:User

標籤:mysql;mysql驗證

首先感謝在本次故障中阿銘對我的無私協助,萬分感謝!阿銘linux論壇:http://www.apelearn.com/study_v2/


問題描述:

公司安全部門掃描到資料庫安全隱患,資料庫不需要經過身分識別驗證就可直接遠端連線。

處理步驟:

①:查看發現my.cf中開啟了--skip-grant-table   #懷疑是之前的管理員忘記了root密碼才這樣弄的。

②:使用如下命令更改資料庫密碼並寫入。如果你知道root密碼可以省掉,因為我沒有root密碼所以就更改了一下。

       UPDATE user SET Password = password(‘123456‘) 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(‘123456‘) where user = ‘root‘; 

④使用如下命令授權root使用者權限

    mysql> grant all on *.* to ‘root‘@‘%‘ identified by ‘123456‘;

⑤使用如下命令將記憶體資訊寫入檔案

    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)

   

=============================至此結束,故障處理完畢===================


本文出自 “王小可的技術部落格” 部落格,請務必保留此出處http://wangxiaoke.blog.51cto.com/5150707/1685924

Mysql不需要身分識別驗證便可遠端連線故障

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.