Windows下Mysql错误ERROR 1045 (28000) ERROR 1054 (42S22)以及ERROR 1820 (HY000)的解决

来源:互联网 发布:壹方凌网络是干嘛的 编辑:程序博客网 时间:2024/05/22 14:47

首先我吐槽下解压绿色版的Mysql 5.7 (估计6.5以后的版本都有这个问题)的权限管理,我没说说安装版,要直接用安装版的耿直Boy出门左拐,不送~

我刚刚重装完的系统,刚刚配置好的Mysql,特么的和我要密码!!!

我根本没有设置好么!!!

算了,不多说了,下面就把我解决问题的步骤说一下

1.问题:命令提示符窗口,在Mysql安装bin目录下运行指令:

X:*Location*\bin\MySQL> mysql -u root -p

(每个人根据自己路劲选择不同目录。)
出现:

Enter password:

输入或者不输入回车后出现错误:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

这时去你的根目录配置你的mysql配置文件my.ini
如果还美哦与搭建环境请参考:
MySQL-5.6.13免安装版配置方法

记事本打开my.ini,在[mysqld]这个条目下加入

skip-grant-tables

保存退出后重启mysql
重启方法1:
1.点击“开始”->“运行”(快捷键Win+R)。
2.启动:输入 net stop mysql
3.停止:输入 net start mysql
重启方法2:
如果1不行,到 计算机管理–>服务和应用程序–>服务–>MYSQL–>右键–>启动.

这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入,
不会出现ERROR 1045 (28000),没有权限很多操作都会受限制。

下面这样(斜体为操作后命令提示的结果,不输入):
1.进入mysql数据库:

mysql> use mysql;
Database changed

2.给root用户设置新密码,新密码自己输:

mysql> update user set password=password(“新密码”) where user=”root”;

警告:这个命令是5.7之前一些老版本的,如果你用的新的,这样输入会出现错误:

ERROR 1054 (42S22): Unknown column ‘password’ in ‘fie

这是因为5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了

authentication_string

所以,应该输入如下命令:

update mysql.user set authentication_string=password(‘root’) where user=’root’ ;
Query OK, 1 rows affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0

3.刷新数据库

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.退出mysql:

mysql> quit
Bye

5.改好之后,再修改一下my.ini这个文件,把刚才加入my.ini文件的的”skip-grant-tables”这行删除,保存退出再重启mysql就可以了。
重启方法见上文。

到这里博主以为就完事大吉了,但是,并没有。。

进入mysql后,有出现了如下错误:

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

坑了个爹的。。。

最后发现还需要重设密码!!!(难道刚刚的操作都是在研究如何吃屎么。。。)

解决方法如下:

mysql> SET PASSWORD = PASSWORD(‘123456’);

对你没看错,就是在设置一边密码。。。当然你不用非弄成123456,这个随意了。。。

博主昨天一下午的时间啊,挽。
以上。

0 0
原创粉丝点击