mysql無密碼登錄:mysql忘記密碼怎么辦?
mysql無密碼登錄:mysql忘記密碼怎么辦?
對(duì)于剛裝的mysql不能遠(yuǎn)程登錄,這是常見的問題,但本地登錄都是沒有問題的,因?yàn)閞oot用戶對(duì)應(yīng)的host為127.0.0.1或者localhost默認(rèn)都是存在的,如圖

今天把root對(duì)應(yīng)的本地連接的兩條記錄刪除了(實(shí)驗(yàn),項(xiàng)目中別亂刪),發(fā)現(xiàn)既不能遠(yuǎn)程連接也不能本地連接,只能使用無密碼登錄了
第一步:停止mysql服務(wù)
/etc/init.d/mysqld stop
第二步:跳過密碼驗(yàn)證
/usr/bin/mysqld_safe –skip-grant-tables 或 mysqld_safe –skip-grant-tables 跳過權(quán)限表啟動(dòng)mysql?顯示
如果命令后加了&,則可以使用Ctrl+c退出,使其后臺(tái)運(yùn)行,第三步也可以不用另開窗口
第三步:另開一個(gè)窗口(沒加&)
use mysql;
#刪除的記錄要insert進(jìn)去,然后修改密碼
update user set password=password(“new_pass”) where user=”root”;
flush privileges;
注意:如果是忘記了密碼,使用上面的修改沒有問題,如果真的是刪除了localhost的記錄,再使用insert into user (user,host)?values (‘root’,’localhost’);這樣是不行的,因?yàn)檫@其中的每條記錄涉都及了很多權(quán)限的問題,有可能導(dǎo)致mysql數(shù)據(jù)庫消失(實(shí)際是沒有權(quán)限),這些權(quán)限要設(shè)置為Y,例如:
update user set
`Select_priv` = ‘Y’,
`Insert_priv` = ‘Y’,
`Update_priv` = ‘Y’,
`Delete_priv` = ‘Y’,
`Create_priv` = ‘Y’,
`Drop_priv` = ‘Y’,
`Reload_priv` = ‘Y’,
`Shutdown_priv` = ‘Y’,
`Process_priv` = ‘Y’,
`File_priv` = ‘Y’,
`Grant_priv` = ‘Y’,
`References_priv` = ‘Y’,
`Index_priv` = ‘Y’,
`Alter_priv` = ‘Y’,
`Show_db_priv` = ‘Y’,
`Super_priv` = ‘Y’,
`Create_tmp_table_priv` = ‘Y’,
`Lock_tables_priv` = ‘Y’,
`Execute_priv` = ‘Y’,
`Repl_slave_priv` = ‘Y’,
`Repl_client_priv` = ‘Y’,
`Create_view_priv` = ‘Y’,
`Show_view_priv` = ‘Y’,
`Create_routine_priv` = ‘Y’,
`Alter_routine_priv` = ‘Y’,
`Create_user_priv` = ‘Y’,
`Event_priv` = ‘Y’,
`Trigger_priv` = ‘Y’
where user=’root’ and host=’localhost’