mysql忘记root密码

use mysql;
update user set password='123456' where user='root';
flush privileges;
产生原因:做了这么久的技术了,自己还是笨的可以!竟然修改mysql的root密码都不会!本来同事每天登录到服务器上去备份其中的一个数据库,我想实现写个简单的脚本,利用crontab在指定的时间去自动备份!就不用每天手动备份了!但是写脚本的时候却发现mysql的本机登录密码为空,不知道在脚本中如何表示空密码!所以想到了修改mysql的root密码!

mysql>use mysql;

mysql>update set password='123456'where user='root';(这是错误的,但我印象中就是这么设置的)

mysql>flush privileges;
mysql>exit

退出之后再次登录到mysql的时候使用123456发现无法登录,用空密码可以登录,但是mysql>show databases;的时候发现里面的数据库没有了,才意识到自己的错误
正确的解决方式:/opt/bokee/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

--skip-grant-tables。顾名思义,就是在启动mysql时不启动grant-tables授权表。

--skip-networking 开启该选项可以彻底关闭MySQL的TCP/IP连接方式

这时候就可以空密码进入mysql数据库了,重设密码
mysql>use mysql;
mysql>update set password=password('123456') where host='localhost' and user='root'
mysql>flush privileges;
mysql>exit

你可能感兴趣的:(mysql,linux,数据库,职场,休闲)