版本更新,原来user里的password字段已经变更为authentication_string
版本更新 缘故,好多网上的教程都不适用了,甚至连官网的文档也不是能够顺利操作的。
如果 MySQL 正在运行,首先杀之:
?
1 | killall -TERM mysqld。 |
运行
?
1 | mysqld_safe --skip-grant-tables & |
如果此时不想被远程连接:
?
1 | mysqld_safe --skip-grant-tables --skip-networking & |
使用mysql连接server
更改密码:
?
1 | update mysql. user set authentication_string= password ( '123qwe' ) where user = 'root' and Host = 'localhost' ; |
*特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了
而是将加密后的用户密码存储于authentication_string字段
?
12 | mysql> flush privileges; mysql> quit; |
修改完毕。重启
?
12 | killall -TERM mysqld。 mysqld_safe & |
然后mysql就可以连接了
但是此时操作似乎功能不完全,还要alter user...
?
1 | alter user 'root' @ 'localhost' identified by '123' ; |
网文说酱紫也可以:
?
1234 | set password for 'root' @ 'localhost' =password( '123' ); cp mysql.server /etc/init .d /mysql chmod +x /etc/init .d /mysql chkconfig --add mysql |