linux中重設伺服器的mysql使用者密碼

來源:互聯網
上載者:User

最近使用阿里雲伺服器,由於安裝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”。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.