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(新密码);
这里虽然不理解 但是上面这条命令可以解决