废话少说,直入正题。
首先 跳过权限表模式启动mysql:mysqld --skip-grant-tables &
从现在开始,你将踏入第一个坑,如果你使用网上到处贴的 错误修改方法
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('your_new_password') WHERE User='root';
(注意,5.7之后password
改成了authentication_string
),恭喜你,你修改成功了,但是你会发现当你使用navicat这种GUI工具连接的时候会报如下错误
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
同时你会发现命令行能使用mysql -u root -p 登录了,但是不能use mysql了,连库都用不了了,搞毛啊,下面这个命令将会拯救你
mysql> SET PASSWORD = PASSWORD('your_new_password');
执行完之后使用命令mysqladmin -u root -p shutdown
关闭mysqld
,再次mysql.server start
启动mysql就全部ok了~