MySQL之——忘記root密碼解決方案


【windows】

1、以管理員的身份打開dos窗口,並關閉mysql服務器

# net stop mysql

2、進入mysql安裝目錄bin下,跳過權限檢查啟動

# mysqld --skip-grant-tables

3、另開dos窗口

4、進入mysql安裝目錄bin下,輸入mysql

5、進入 mysql>  后,連接數據庫

 mysql> use mysql;

6、輸入修改sql

mysql> update mysql.user set authentication_string=password('新密碼') where user='用戶名';

7、刷新權限

mysql> flush privileges;

8、退出mysql

mysql> \q

9、啟動mysql服務器

# net start mysql

10、輸入mysql -u root -p,在Enter password:輸入修改的密碼,成功進入mysql

 

【linux】

1、查找my.cnf的路徑,一般默認路徑為/etc/my.cnf

# locate my.cnf

2、進入etc下

# cd /etc

編輯my.cnf配置文件

# vim my.cnf

2.在[mysqld]下添加skip-grant-tables,然后保存並退出(注:按I進入輸入模式;按ESC,輸入:wq,保存並退出)

3、重啟mysql服務

# service mysql restart

4、執行mysql命令進入mysql命令行

# mysql -u root -p

5、修改root用戶密碼

MySQL> update mysql.user set authentication_string=password('新密碼') where user='用戶名';

6、刷新權限
MySQL> flush privileges;

7、退出mysql
MySQL> exit

 8、把/etc/my.cnf中的skip-grant-tables注釋掉

9、重啟mysql

# service mysql restart

10、輸入mysql -u root -p,在Enter password:輸入修改的密碼,成功進入mysql

 

注意:

要想遠程可以連接數據庫,需要對連接ip授權

1)登錄mysql mysql -uroot -p; 並輸入密碼

2)創建遠程登陸用戶並授權 :grant all PRIVILEGES on *.* to 用戶@'授權ip' identified by '密碼';

如果執行以上指令,報(You must reset your password using ALTER USER statement before executing this statement.)錯誤,是因為一開始是沒有密碼的,在初始化的時候有個密碼,只是相當於臨時密碼:

需要先執行以下命令

alter user user() identified by "root";

執行立即生效:flush privileges;

 

簡單並詳細的說下授權指令

1:*.* 表示上面的權限是針對於哪個數據庫的哪個表的,第一個*可以指定數據庫,第二 * 可以指定數據表:對於全部數據庫的全部表授權為“*.*”,對於某一數據庫的全部表授權為“數據庫名.*”,對於某一數據庫的某一表授權為“數據庫名.表名”。 

2:root 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。47.96.138.137 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設置為“%”即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM