版本更新,原來user裡的password字段已經變更為authentication_string
版本更新 緣故,好多網上的教程都不適用了,甚至連官網的文檔也不是能夠順利操作的。
如果 MySQL 正在運行,首先殺之:
killall -TERM mysqld。
運行
mysqld_safe --skip-grant-tables &
如果此時不想被遠程連接:mysqld_safe --skip-grant-tables --skip-networking &
使用mysql連接server
更改密碼:
update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
*特別提醒注意的一點是,新版的mysql數據庫下的user表中已經沒有Password字段了
而是將加密後的用戶密碼存儲於authentication_string字段
mysql> flush privileges; mysql> quit;
修改完畢。重啟
killall -TERM mysqld。 mysqld_safe &
然後mysql就可以連接了
但是此時操作似乎功能不完全,還要alter user...
alter user 'root'@'localhost' identified by '123';
網文說醬紫也可以:
set password for 'root'@'localhost'=password('123'); cp mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql chkconfig --add mysql