sudo /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking
使用这条命令可以跳过开始的认证。但是这样的登录有权限的限制
要彻底解决问题
mysql>
use mysql
mysql> UPDATE user SET Password=PASSWORD(
'') where USER=
'root'
->
;
ERROR 1054 (42S22): Unknown column
'Password' in 'field list'
mysql> update mysql.user set authentication_string=password(
'zhihu123') where user=
'root'
->
;
Query OK, 1 row affected,
1 warning (
0.00 sec)
Rows matched: 1 Changed:
1 Warnings:
1
mysql> quit
第一条语句是在大多数的网站上查到的解决方法 在这里不适用 可能是新版本的原因
第二条语句才是正道,问题解决!
可是接下来又会出现新的问题,当输入show databases 的时候,出现了以下情况。
ERROR
1820 (HY000): You must SET PASSWORD before executing this statement
可是明明是 mysql -u root -p 命令进来的呀?
SET PASSWORD = PASSWORD(新密码);
这里虽然不理解 但是上面这条命令可以解决
转载于:https://www.cnblogs.com/moonnight/p/5316291.html