【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 則設置為“%”即可。