linux中重置服務器的mysql用戶密碼


最近使用阿里雲服務器,由於安裝lnmp安裝包時疏忽,安裝完后忘記了mysql的root用戶密碼。本來想重裝服務器系統,但由於之前換系統和安裝環境花費了不少時間,也覺得沒必要出現什么問題都去重裝系統。由於服務器安裝的是Linux系統,於是只有用shell命令去修改了。

在進行重置mysql用戶密碼時首先確認服務器出於安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出於沒有密碼保護的狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以采用將MySQL對外的端口封閉,並且停止Apache以及所有的用戶進程的方法實現服務器的准安全狀態。

1>停止mysql.

 代碼如下 復制代碼

# /etc/init.d/mysqld stop

2>修改MySQL的登錄設置

 代碼如下 復制代碼
# vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

例如:

 代碼如下 復制代碼

[mysqld] 

port = 3306 

socket = /tmp/mysql.sock 

skip-external-locking 

skip-grant-tables

保存並且退出vi。

3>重新啟動mysql

 代碼如下 復制代碼

# /etc/init.d/mysqld restart

4>登錄並修改mysql的root密碼

 代碼如下 復制代碼

# /usr/bin/mysql 

mysql> USE mysql ; 

mysql> UPDATE user SET Password = password('newpassword') WHERE User = 'root' ; 

mysql> flush privileges ; 

mysql> quit ;//www.111cn.net

5>將mysql的登錄設置修改回來

 代碼如下 復制代碼

# vi /etc/my.cnf

將剛才在[mysqld]的段中加上的skip-grant-tables刪除
保存並且退出vi。

6>重新啟動mysql

 代碼如下 復制代碼

# /etc/init.d/mysqld restart

例子,一個萬能的方法

作為可選方式,在任何平台上,可使用mysql客戶端設置新密碼(但該方法不夠安全):

停止mysqld,並用“–skip-grant-tables –user=root”選項重啟它(Windows用戶可省略–user=root部分)。

使用下述命令連接到mysqld服務器:www.111Cn.net

 代碼如下 復制代碼
shell> mysql -u root

在mysql客戶端發出下述語句:

 代碼如下 復制代碼
mysql> UPDATE mysql.user SET Password=PASSWORD(‘newpwd’)
    ->                   WHERE User=’root’;
mysql> FLUSH PRIVILEGES;

用打算使用的實際根用戶密碼替換“newpwd”。

應能使用新密碼進行連接。

 


免責聲明!

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



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