錯誤號碼1045 Access denied for user 'root'@xx.xxx.xxx.xx(using password:YES) 遠程登錄被拒絕的非正常解決辦法 ...
最近在做網站遷移的時候,遇到了一件很尷尬的事情,遠程連接數據連不上了,一直報 錯誤號碼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 註釋掉,再次重啟伺服器 一頓騷操作之後,再次嘗試遠程連接資料庫,連接成功~~ 啊~今天又很堅強的活了下來~~