2012-01-20 68 views
8

Stackoverflow的長期讀者,第一次提交問題。錯誤:'訪問拒絕用戶'debian-sys-maint'@'localhost'(使用密碼:YES)'

由於各種原因,我不得不在幾天前硬件重新啓動我的開發筆記本電腦。當我把它帶回來時,我意識到mysqld不再可用。我通常使用本地開發機器上的root進行連接。我無法像往常一樣通過init腳本啓動/停止它,所以我一如既往地轉向各種搜索引擎。在諮詢Google,Bing和Duckduckgo.com後,我仍然無法找到解決方案。我找到了類似問題的解決方案,但都涉及修改debian-sys-maint的自動生成密碼並以root身份登錄以設置新密碼,但由於我無法以root身份登錄,所以這不能解決我的問題。

有沒有人知道任何其他解決方案候選人的這種困境?

錯誤: '訪問被拒絕的用戶 '的debian-SYS-MAINT' @' localhost '的(使用密碼:YES)'。

+2

錯誤消息表明mysql服務器正在運行,但您的登錄憑據錯誤。應該在http://serverfault.com/上提問Perhabs這個問題。 – Mchl

回答

3

聽起來像你可能已經丟棄了數據庫中的表(「mysql」),該數據庫持有訪問所有數據庫的憑據。你在MySQL日誌(/ var/log/mysql)中看到任何指示問題的東西嗎?

如果存在損壞,則嘗試修復它的方法將取決於您的存儲引擎。你使用MyISAM(默認)嗎?如果是這樣,請嘗試關閉守護進程並使用myisamchk嘗試修復。

如果你不能修復,你可能需要從備份中恢復(你有備份,對吧?)或重新初始化MySQL(可能只是通過APT重新安裝包是最簡單的)。

您也可以在ServerFault上嘗試以獲取來自有經驗的系統管理員的更多建議。

P.S.-如果您擁有系統超級用戶訪問權限,即使您無法登錄到MySQL,也可以重置MySQL root密碼,儘管通過somewhat convoluted procedure

+1

謝謝你的回答。在測試了很多不同的解決方案之後,我簡單地做了我應該在開始時嘗試的最簡單的事情,即:apt-get remove mysql-server; apt-get install mysql-server; mysql_secure_installation – dVw

+0

我現在有同樣的問題!我的MySQL服務器顯示相同的消息,我將運行,我無法阻止它,也重新啓動不起作用! Mysql沒有檢測到我的一個表!任何解決方案我沒有任何備份 – sinoohe

+0

您是否按照我的建議嘗試使用myisamchk?如果這不起作用,並且您沒有備份,那麼您可能是SOL。讓這成爲保留備份的重要一課,特別是對於生產系統。 –

9

我剛剛得到了同樣的錯誤後,我恢復mysql數據庫,像這樣:

mysql -h localhost -u root -p < mysql.backup.sql 

的MySQL。 backup.sql文件來自另一臺服務器。

這個問題似乎是從存儲在/etc/mysql/debian.cnf在目標和源系統的不同的密碼來發起。我將密碼行從源系統的debian.cnf文件複製/粘貼到目標系統中的文件。然後我能夠毫無問題地重新啓動mysqld。

注:我不得不這樣做killall mysqld之前,我可以做一個重新啓動。

+3

我剛剛發現您在/etc/mysql/debian.cnf中列出的密碼。我們稱之爲'尋找'。然後我在MySQL中重置密碼:「授予*。*所有特權給''seekrit'識別的'debian-sys-maint'@'localhost'; flush privileges;」奇蹟般有效! – oalders

+0

謝謝,它在db複製後爲我工作。看起來這個用戶/密碼被啓動腳本使用/etc/init.d/mysql 這看起來似乎是debian特有的,我從來沒有注意到在其他Linux上。 –

相關問題