最 近使用阿里云服務器,由于安裝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”。
應能使用新密碼進行連接。
你可能感興趣的文章新聞熱點
疑難解答