環境說明:
作業系統:阿裡雲linux centos7.6 資料庫:5.7
1、首先确認伺服器出于安全的狀态,也就是沒有人能夠任意地連接配接MySQL資料庫。 因為在重新設定MySQL的root密碼的期間,MySQL資料庫完全出于沒有密碼保護的 狀态下,其他的使用者也可以任意地登入和修改MySQL的資訊。可以采用将MySQL對外的端口封閉,并且停止Apache以及所有的使用者程序的方法實作伺服器的準安全狀态。最安全的狀态是到伺服器的Console上面操作,并且拔掉網線。
2、修改MySQL的登入設定;
vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables 儲存并且退出vim。

3、重新啟動mysql
service mysqld restart # 或 /etc/init.d/mysqld restart
4、登入并修改MySQL的root密碼
mysql -u root -p
回車,無需輸入密碼即可進入的mysql。
USE mysql ;
UPDATE user SET Password = password ('P@ssw0rd_2770') WHERE User = 'root' ;
或
UPDATE mysql.user SET authentication_string=PASSWORD("P@ssw0rd_2770")WHERE user='root' and host='localhost';
flush privileges ;
quit;
注:如果在mysql5.7的版本中,會出現如現錯誤
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
錯誤的原因是 5.7版本下的mysql資料庫下已經沒有password這個字段了,password字段改成了authentication_string
5、将MySQL的登入設定修改回來
vim /etc/my.cnf
将剛才在[mysqld]的段中加上的skip-grant-tables删除;
儲存并且退出vim。
6、重新啟動mysql
service mysqld restart # 或 /etc/init.d/mysqld restart
7、重新登入資料庫驗證
mysql -u root -p