mysql的數據庫沒了,同時出現一個WARNING表。
將內容複製下來,翻譯就很明瞭了…
在第一次弄這種時。可能很多人都不瞭解。我也是踩了一個坑。在對這個數據庫的用戶設置時。首先是你的設置用戶名密碼包括端口都是默認,還有就是權限問題。我們在剛使用時,沒這個觀念,也圖方便。就使用的默認的用戶名和端口,甚至密碼都很簡單。就很容易被暴力破解了。
這種黑了庫然後勒索的事情也不少見…
數據這東西由於我只是個小項目的開發中,並沒有什麼數據。所以還好。但是感覺到了不安全。那麼該怎麼防範呢?
1.修改訪問權限
1.首先登錄putty後。進入數據庫
$ mysql -u root -p
2.輸入密碼,進入數據庫後。輸入進入mysql這個特殊的數據庫。
$ use mysql
3.我們進入mysql這個數據庫,裏面有個特殊的表叫user。我們可以看看裏面的用戶。
select user,host from user;
顯示出來的表,如果看到你的user下你的默認用戶root,看到他的host是%的話。那這就是一個問題所在。
host代表允許訪問的主機地址,而%爲全部允許。
4.我們將它修改。而除了這個之外的用戶,其實都可以刪除掉。
update user set host='localhost' where user = 'root';
delete from user where user != 'root';
5.除了這個表,我們還需要去db表進行刪除
delete from db where user != 'root';
6.然後刷新緩存,讓配置生效
flush privileges;
密碼賬號已經泄露了。記得修改密碼。推薦數字英文字符等結合。我爲了安全,將默認用戶名也修改了。當然,修改了以上後。
還有個問題。我的網站,在修改後訪問不了數據庫。因爲上面改成了只有localhost可以訪問了。
所以我添加了一個新的用戶,不過權限有限,只給了操作的項目的數據庫的權限。而沒給mysql數據庫的權限。這個用戶的host給了網站ip。然後網站就可以正常訪問了。
另外,navicat也連不上。報錯
1130 Host ‘xxxx.xx.xx.xx’ is not allowed to connect Mysql server.
所以加了第三個用戶,將host給了本機ip。
經過以上修改。
原最高權限的root被我設置成只有host爲localhost允許訪問。這樣雲服務器就可以訪問到數據庫了。
而第二個用戶的host設置成了網站的ip,所以網站可以訪問我們的數據庫。
第三個就是我自己的電腦了。
2.修改端口號
1.同樣在putty上先登錄數據庫
$ mysql -u root -p
2.我們可以查看下當前的端口號。默認3306
show global variables like 'port';
3.修改端口號
vi /etc/my.cnf
按i進入編輯模式。找到port=3306修改。
編輯完按esc進入命令模式 ,然後輸入 :wq退出。
4.然後重啓數據庫
service mysql restart
5.我們可以再看看端口
show global variables like 'port';
然後可以看到修改成功。
另外,修改端口後,在網站的數據庫連接的配置文件也要修改。
最後感謝給了我幫助。也給同樣中招的朋友們一個辦法。
https://blog.csdn.net/qq_42584411/article/details/90548619
https://blog.csdn.net/guoqiaosen/article/details/84918088