如何解決mysql stop fail的問題


最近在學習mysql,碰到了一個mysql stop fail的問題,在這里把碰到的問題以及解決的過程寫出來,不是這個問題有多難,而是我在解決此問題的過程中沒有發現一個行之有效的解決問題的中文網頁,搞得白白浪費了很多時間。在這里我把解決的過程寫下來,希望給后來者解決相同的問題節省點時間。好了,廢話不多說,開始進入正題。

我的操作系統環境是ubuntu 14.04,64位,安裝mysql過程如下:

由於更改了mysql的配置文件,需要重啟一下mysql,我通過下面兩個命令來stop mysql:

當然也試過網上所說的service mysql stop,然后並沒有卵用。在搜索了多次以后,最后在一個英文的論壇中找到的解決方法。在該問題的版面也有很多的回答者給出了“方法”,只有一位給出的方法解決了我的問題。

該問題的解決過程是這樣子的:

1、以root權限登陸mysql,執行如下的sql語句:
    select User from mysql.user

看看在mysql數據庫下的user表中是不是存在一個名為:debian-sys-maint的用戶,執行上面的sql語句在我的機器上返回的結果如下圖所示:

如果在你的查詢返回的結果集中不存在用戶debian-sys-maint,那么你需要執行第二個步驟,如果有debian-sys-maint用戶,那么你需要執行第三個步驟。

2、執行sql語句:CREATE USER 'debian-sys-maint‘@'localhost' identified by 'password'

我簡單解釋一下該sql語句:創建一個名為debian-sys-maint的用戶,password為該用戶使用mysql的密碼,那么password字段的值我們如何指定呢?是任意指定嗎?不是,password字段的值得需要與文件/etc/mysql/debian.cnf中的debian-sys-maint的密碼保持一致,在我的機器上/etc/mysql/debian.cnf文件的內容如下:

3、如果執行了第二步了,那么你就可以成功stop mysql,不需要執行第三步了。第三步的過程如下:

首先執行如下的sql語句,查看debian-sys-maint所在行的password字段的值與/etc/mysql/debian.cnf中的debian-sys-maint所對應的password是否相同,

由於在mysql中密碼是被加密存儲的,所以我們根本無法比較兩個密碼,由於我們需要的是兩處的密碼保持一致,所以執行下面的sql語句:

update user set password=PASSWORD("password from /etc/mysql/debian.cnf") where User='debian-sys-maint'

此處password from /etc/mysql/debian.cnf為在/etc/mysql/debian.cnf文件中debian-sys-maint所對應的密碼,大家千萬別搞錯了。

這樣就可以成功stop mysql了。

多說一句,大家平時解決問題還是多采用英文,中文的東西魚龍混雜,很多噪音,不僅不能幫你解決問題,還把帶到溝里,白白浪費時間。

好了,還是最后標志性的那句話:我所說的都是錯的,當然也包括這一句。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM