Linux下MySQL忘記密碼的解決方法

2022-07-10 11:39:15 字數 1242 閱讀 3693

1.先停止mysql服務

sudo systemctl stop mysql

2.用mysql安全命令啟動,跳過許可權表和網路

sudo mysqld_safe --skip-grant-tables --skip-networking &

末尾的&符號的作用是讓程序在後台執行,可以讓使用者繼續輸入命令。

執行此命令後,就可以使用#mysql -u root免密登入了。

3.如果輸入該命令後返回以下錯誤提示

2018-02-12t08:57:39 mysqld_safe directory '/var/run/mysqld' for unix

socket file don't exists. mysql -u root error 2002 (hy000): can't connect to local mysql server through socket

'/var/run/mysqld/mysqld.sock' (2) [1]+ exit 1

# 建立mysql服務目錄

sudo mkdir /var/run/mysqld

# 修改該目錄的讀寫許可權

sudo chown mysql: /var/run/mysqld

4.執行第2點的命令

5.執行mysql -u root命令免密登入mysql。

mysql> flush privileges;

# 對於mysql 5.7.6及以上版本

mysql> alter user 'root'@'localhost' identified by 'new_password';

# 對於mysql 5.7.5及以下版本

mysql> set password for 'root'@'localhost' = password('new_password');

# 如果以上命令報錯,就執行以下命令

mysql> update mysql.user set authentication_string=password('new_password') where user='root' and host='localhost';

6.停止該安全服務,用kill命令終止程序

sudo kill `cat /var/run/mysqld/mysqld.pid`

# 如果命令報錯,就執行以下命令

sudo pkill mysql

7.重啟正常的mysql服務

sudo systemctl start mysql

linux 下mysql忘記密碼

1 首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連線mysql資料庫。因為在重新設定mysql的root密碼的期間,mysql資料庫完全出於沒有密碼保護的 狀態下,其他的使用者也可以任意地登入和修改mysql的資訊。可以採用將mysql對 外的埠封閉,並且停止apache以及所有的使用者程序...

Linux下Mysql忘記密碼

確認只有你能登入這台機器,因為過程中mysql出於無密碼登入狀態,任何有這台機器許可權的人都可能進來搞破壞,最好的做法就是拔掉網線。root centos6 vi etc my.cnf mysqld skip grant tables default character set utf8 datad...

linux下mysql忘記密碼

有可能你的系統沒有 safe mysqld 程式 比如我現在用的 ubuntu作業系統,apt get安裝的mysql 下面方法可以恢復 1.停止mysqld sudo etc init.d mysql stop 或者service mysqld stop 2.用以下命令啟動mysql,以不檢查許可...