唯一對我有用的方法是所描述的方法這裡(我運行的是 ubuntu 14.04)。為了清楚起見,我遵循以下步驟:
sudo vim /etc/mysql/my.cnf
在最後加上以下行:
[mysqld] skip-grant-tables
sudo服務mysql重啟
#mysql -u root
#使用mysql
select * from mysql.user where user = 'root'; - 看頂部判斷密碼列是否被調用 密碼或authentication_string
select * from mysql.user where user = 'root';
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - 使用正確的密碼列以上
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
刷新權限;
退出
如果您想要保持安全標準,請刪除步驟 2 中新增的行。
供參考:https://dev.mysql.com /doc/refman/5.7/en/resetting-permissions.html
在 Ubuntu Linux 上設定/更改/重設 MySQL root 密碼。在終端機中輸入以下行。
sudo /etc/init.d/mysql stop
/var/run/mysqld
sudo mkdir -v /var/run/ mysqld && sudo chown mysql /var/run/mysqld
mysqld
sudo mysqld --skip-grant-tables &
mysql -u root mysql
YOURNEWPASSWORD
對於 MySQL
UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD') WHERE User = 'root'; FLUSH PRIVILEGES;
如果您的 MySQL 使用新的驗證插件,則需要在刷新權限之前使用:update user set plugin="mysql_native_password" where User='root';。
update user set plugin="mysql_native_password" where User='root';
注意:此方法並不被視為重設密碼的最安全方法,但它確實有效。
對於 MySQL >= 8.0
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'; FLUSH PRIVILEGES;
正如@lambart的評論中所指出的,您可能需要終止您啟動的臨時無密碼mysql進程,即sudo Killall -9 mysqld,然後啟動正常的守護進程:sudo服務mysql啟動
sudo Killall -9 mysqld
sudo服務mysql啟動
參考文獻:
唯一對我有用的方法是所描述的方法這裡(我運行的是 ubuntu 14.04)。為了清楚起見,我遵循以下步驟:
sudo vim /etc/mysql/my.cnf
在最後加上以下行:
sudo服務mysql重啟
#mysql -u root
#使用mysql
select * from mysql.user where user = 'root';
- 看頂部判斷密碼列是否被調用 密碼或authentication_stringUPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- 使用正確的密碼列以上刷新權限;
退出
sudo vim /etc/mysql/my.cnf
如果您想要保持安全標準,請刪除步驟 2 中新增的行。
sudo服務mysql重啟
供參考:https://dev.mysql.com /doc/refman/5.7/en/resetting-permissions.html
在 Ubuntu Linux 上設定/更改/重設 MySQL root 密碼。在終端機中輸入以下行。
sudo /etc/init.d/mysql stop
/var/run/mysqld
不存在,則必須先建立它:sudo mkdir -v /var/run/ mysqld && sudo chown mysql /var/run/mysqld
mysqld
設定:sudo mysqld --skip-grant-tables &
mysql -u root mysql
YOURNEWPASSWORD
替換為您的新密碼:對於 MySQL
#如果您的 MySQL 使用新的驗證插件,則需要在刷新權限之前使用:
update user set plugin="mysql_native_password" where User='root';
。注意:此方法並不被視為重設密碼的最安全方法,但它確實有效。
對於 MySQL >= 8.0
最後一步:
正如@lambart的評論中所指出的,您可能需要終止您啟動的臨時無密碼mysql進程,即
sudo Killall -9 mysqld
,然後啟動正常的守護進程:sudo服務mysql啟動
參考文獻: