MySQL连接错误

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

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,这个随意了。。。

谢谢你请我吃糖果!