修改mysql数据库的root密码

问题:Navicat创建连接报错MySql 1045 Access denied for user ‘root‘@‘localhost‘ (using password: YES)
基于出现mysql数据库服务打不开,初始化date文件夹后服务可以正常打开,但Navicat输入密码后“MySql 1045 Access denied for user ‘root‘@‘localhost‘ (using password: YES)”
image

解决方案

附上启发文章:https://blog.csdn.net/acoolgiser/article/details/82967317

第一步:

找到安装mysql路径下my.ini文件(例:D:\mysql),

image

第二步:

编辑mysql配置文件my.ini ,

第三步:

在[mysqld]这个条目下加入 skip-grant-tables 保存退出后重启mysql(目的DOS进入mysql跳过密码登录)

第四步:

因为改了配置文件所以重启mysql服务

  1》方法一 任务管理器-------服务------mysql服务-------重启

  2》方法二:停止:输入 net stop mysql   启动:输入 net start mysql

第五步:

打开cmd,点击“开始”->“运行”(快捷键Win+R)。

这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为没有grant权限。这里注意有mysql环境不论在那个目录输入mysql -u root -p直接就能进入mysql,但没环境必须cd到mysql安装目录下执行mysql -u root -p才能生效。
image

第六步:

这里注意 mysql>后面跟的是命令--------------------------- ------结果
1.进入mysql数据库:mysql> use mysql; ----------------- Database changed
image
2.给root用户设置新密码:
mysql> update user set password=password(新密码) where user=root;----------------
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
出现--------后面的内容说明修改成功不然不成功会报ERROR 1054 (42S22): Unknown column ''password'' in ''field list''错误这时将命令改为(将password改为authentication_string)
image

mysql> update mysql.user set authentication_string=PASSWORD('新密码') where User='root';

附上我看到的解决文章:https://www.jb51.net/article/102138.htm
出现以下代码表示成功
Query OK, 1 row affected, 1 warning (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 1
image
3.刷新数据库
mysql> flush privileges;------------------ Query OK, 0 rows affected (0.00 sec)
image
4.退出mysql:
mysql> quit;------------mysql> quit;
Bye
image
第七步:
改好之后,再修改一下my.ini这个文件,把我们刚才加入的 skip-grant-tables这行删除,保存退出再重启mysql服务,再重新用Navicat连接就可以了。
image

image
输入你新的密码就行了