最近在做網站遷移的時候,遇到了一件很尷尬的事情,遠程連接數據連不上了,一直報 錯誤號碼1045 Access denied for user 'root'@xx.xxx.xxx.xx(using password:YES) 遠程登錄被拒絕
嘗試通過阿里雲自帶的遠程連接登錄,依然是拒絕訪問,這下涼涼了,如果這個問題解決不掉,不光是網站遷移完成不了,之前存的數據也保存不下來了。難道只能趁着夜黑風高天里跑路?怎么可能~~
度娘谷哥了一圈,解決辦法也有而且都差不多(很多都是一字不差的復制),基本步驟是
1:停止MySQL服務器(一般在/etc/init.d/mysql)
2:設置MySQL跳過權限驗證並啟動
3:更新遠程登錄權限並刷新
4:重啟服務器
如果是正常配置的服務器,找到mysql並且停止它,是一件非常容易的事情,但是,作為一台經過了幾次交接,基本上沒有使用文檔的服務器,那就很傷腦筋了。反正我找了很久都沒有找到mysql裝在了哪里,從哪里啟動。
注意:以下操作為非常規操作,且涉及到重啟服務器,改配置等危險操作,如果不是自己的服務器或者服務器網站特重要的,不建議嘗試,以免被項目經理打出屎...
嘗試使用網上給出的命令關閉MySQL服務器,關閉失敗,只能強行kill掉進程,然后使用命令 mysqld_safe --skip-grant-tables & 沒有成功,報找不到 mysqld_safe
沒有辦法,只能想辦法改配置文件了,在/etc文件夾下,找到my.cnf文件,對其進行修改,在[mysqld]下添加 skip_grant_tables 讓MySQL在運行的時候可以跳過權限,直接登錄。
所以?找不到MySQL要怎么重啟呢?幸虧這個服務器目前只掛了一個訪問量很小的官網,利用服務器重啟后MySQL也會自啟的特性,我在后台直接重啟了服務器。
so?我成功了,服務器重啟后,MySQL也啟動了,直接輸入命令 mysql 回車,繞過權限進入數據庫成功。
后面的操作就比較簡單了,
先使用命令 flush privileges; 刷新數據庫系統權限
然后使用命令
GRANT ALL PRIVILEGES ON *.* TO 'manage'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
新增一個manage用戶用於遠程訪問。
退出MySQL服務器后,將/etc/my.cnf文件中的 skip_grant_tables 注釋掉,再次重啟服務器
一頓騷操作之后,再次嘗試遠程連接數據庫,連接成功~~
啊~今天又很堅強的活了下來~~
