我的错误语句是
set password for root@localhost = password(‘123456’);
我用的是Linux系统下的mysql8.0,刚开始以为是自己的标点符号打错了,但是改来改去都不对,我就索性把这句话放进了windows的navicate运行了一下,发现完全没错!那是怎么回事呢?
我的navicate里连了两个mysql服务器,一个是部署在我本机的5.0,一个是windows server的8.0,我就突然想起自己曾经也踩过这个坑!
没错!就是版本问题!
我由于最近新开了一个linux虚拟机练手,往上面装了mysql8.0,忘记密码了,就按照网上的教程改密码,在输入上面的语句时报了语法的错。其实并不是你打错了,而是8.0改密码不再是用这条语句了,当然会报错!
8.0忘记了密码的正确的方法是:
1.进入配置文件 vim /etc/my.cnf ,在[mysqld]下面添加代码 skip-grant-tables ,配置免密登录。保存后退出
skip-grant-tables
2.重启mysql (这个是8.0的重启方法!一定要用它!)
systemctl restart mysqld