2

更改my.cnf配置文件

  • 找到my.cnf的位置,不同电脑可能不大一样,我这里是/usr/local/etc/my.cnf,也有可能是/etc/my.cnf
  • 修改my.cnf
vim my.cnf
  • 在[mysqld]下添加skip-grant-tables,然后保存并退出

image.png

  • 重启mysql服务

找到mysql服务路径,我这里是/usr/local/Cellar/mysql/8.0.17/support-files/mysql.server

cd /usr/local/Cellar/mysql/8.0.17/support-files

mysql.server restart

修改密码

  • 重启以后,执行mysql -uroot -p(不需要密码直接Enter)进入mysql命令行

image.png

  • 修改密码

执行

mysql> update user set password=password("*******") where user="*******";  #修改密码报错

如果上面报错ERROR 1054 (42S22): Unknown column 'password' in 'field list',

(错误的原因是 5.7版本下的mysql数据库下没有password这个字段,password字段改成了authentication_string)

请尝试以下语句

mysql> update mysql.user set authentication_string=password('*******') where user='*******';  #修改密码成功
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

如果以上命令还是不行,那么请尝试

mysql> flush privileges;  #立即生效
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
  • 修改立即生效
mysql> flush privileges;  #立即生效
Query OK, 0 rows affected (0.00 sec)

mysql> quit  #退出mysql -- 也可以使用 exit;命令
Bye

删除skip-grant-tables

重新执行vim /etc/my.cnf,然后删除刚刚加入的 skip-grant-tables,重新启动mysql

参考链接


普通程序员
4k 声望811 粉丝

分享IT干货,内推大厂