1.打開mysql.exe和mysqld.exe所在的文件夾,復(fù)制路徑地址
2.打開cmd命令提示符麸澜,進(jìn)入上一步mysql.exe所在的文件夾
輸入命令mysqld --skip-grant-tables ?回車,此時(shí)就跳過了mysql的用戶驗(yàn)證。注意輸入此命令之后命令行就無法操作了偷卧,此時(shí)可以再打開一個(gè)新的命令行搀愧。注意:在輸入此命令之前先在任務(wù)管理器中結(jié)束mysqld.exe進(jìn)程醒串,確保mysql服務(wù)器端已結(jié)束運(yùn)行怀偷。
4.然后直接輸入mysql,不需要帶任何登錄參數(shù)直接回車就可以登陸上數(shù)據(jù)庫扔仓。
5.輸入show databases; ? 可以看到所有數(shù)據(jù)庫說明成功登陸褐奥。
6.其中mysql庫就是保存用戶名的地方。輸入 use mysql; ? 選擇mysql數(shù)據(jù)庫翘簇。
7.show tables查看所有表撬码,會(huì)發(fā)現(xiàn)有個(gè)user表,這里存放的就是用戶名缘揪,密碼,權(quán)限等等賬戶信息义桂。
8.輸入select user,host,password from user; ? 來查看賬戶信息找筝。
9.更改root密碼,輸入update user set password=password('123456') where user='root' and host='localhost';
10.再次查看賬戶信息慷吊,select user,host,password from user; ? 可以看到密碼已被修改袖裕。
11.退出命令行,重啟mysql數(shù)據(jù)庫溉瓶,用新密碼嘗試登錄急鳄。
12.測(cè)試不帶密碼登錄mysql,發(fā)現(xiàn)還是能夠登陸上谤民,但顯示數(shù)據(jù)庫時(shí)只能看到兩個(gè)數(shù)據(jù)庫了,說明重啟之后跳過密碼驗(yàn)證已經(jīng)被取消了疾宏。
13.我這地方重啟數(shù)據(jù)庫之后之所以不帶密碼任然能夠登錄是因?yàn)槲业臄?shù)據(jù)庫里存在設(shè)無須口令的賬戶张足。
備注:注意事項(xiàng)
注意其中需要重啟數(shù)據(jù)庫的幾個(gè)地方
Mysql5.7里面的password變成了authentication_string,所以在查看/修改密碼時(shí)要注意坎藐。
//查看數(shù)據(jù)庫中用戶的信息
select user,host,?authentication_string?from user;
//修改用戶的密碼:
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
修改完密碼之后为牍,還需要執(zhí)行一下下面的語句:
alter?user?'root'@'localhost'?identified by?'上面寫的密碼';
密碼的修改可以參考:http://www.jb51.net/article/77858.htm
忘記密碼參考:http://jingyan.baidu.com/article/454316ab4e9e65f7a7c03ad1.html
官方文檔說了mysqld?--initialize-insecure自動(dòng)生成無密碼的root用戶,mysqld?--initialize自動(dòng)生成帶隨機(jī)密碼的root用戶岩馍。data文件夾不為空是不能執(zhí)行這個(gè)命令的碉咆。可以先刪除data目錄下的所有文件或者移走