MySQL忘記root密碼的解決辦法
阿新 • • 發佈:2018-07-11
ica 會有 net localhost ngs list emctl war upd 使用MySQL時,如果忘記了其他用戶的密碼,可以使用root用戶重新設置,但是如果忘記了root的密碼,就要采用特殊的方法進行操作。
直接修改授權表可以修改root的密碼,下面詳細介紹步驟,以mysql5.7為例。
直接修改授權表可以修改root的密碼,下面詳細介紹步驟,以mysql5.7為例。
- 停止mysqld服務進程
[root@localhost ~]# systemctl stop mysqld.service [root@localhost ~]# netstat -ntpln | grep 3306 //檢測mysql是否已經啟動
- 使用mysqld結合skip-grant-tables啟動數據庫,它的作用是用戶登錄時不使用授權表,所以用戶可以不使用密碼直接登錄。
[root@localhost ~]# mysqld --skip-grant-tables& [root@localhost ~]# netstat -ntpul | grep 3306 //檢測mysql是否已經啟動 tcp6 0 0 :::3306 :::* LISTEN 1561/mysqld
- 可以不使用密碼直接登錄到mysql,使用update修改root密碼。
[root@localhost ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.17 Source distribution mysql> update mysql.user set authentication_string=password(‘123abc‘) where user=‘root‘; //修改root密碼為123abc Query OK, 1 row affected, 1 warning (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 1
4.刷新數據庫,使用update修改密碼後,只是在數據庫中進行了修改,內存中的數據並沒有修改。flush privileges 的作用就是把當前user和privilege表中的用戶信息和權限設置從mysql庫提取到內存裏。mysql用戶數據和權限修改後,希望在不重啟mysql服務的情況下直接生效,就需要執行以下命令。
mysql> flush privileges; //刷新數據庫
Query OK, 0 rows affected (0.01 sec)
5.使用新密碼做登錄測試,登錄成功說明修改成功。
[root@localhost ~]# mysql -uroot -p123abc //登錄mysql mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.17 Source distribution
這裏註意登錄時-p後面直接跟上登錄密碼,不能有空格,否則就會有錯誤。
MySQL忘記root密碼的解決辦法