解决MySQL添加新用户-ERROR 1045 (28000)的问题


Posted in MySQL onMarch 03, 2022

MySQL添加新用户,见文章底部。

按照正常思维,创建用户和设置密码什么的,应该是一个动作完成的。然而事实并非如此。

我每次都是通过在网上找代码来创建MySQL的用户。如果无效,就再搜一段。
现在我心累了,必须写个自己的教程。

1,先要连接到MySQL,工具就是在终端上输入mysql。
一般来说可以设置几个参数,重要的是-u代表用户,比如root,或者guest,-p代表密码,-h代表地址,如果是localhost,可以省略。
例子 mysql --user user --host localhost --port 3306 --password
回车之后输入密码即可。
偶尔会遇到直接使用sudo mysql可以登录的情况。

2,选择mysql数据库。

use mysql;

3,创建用户,比如用户名是demo,则使用

create user demo;

4,给用户权限。

grant all on *.* to 'demo'@'localhost' identified by 'password' ;

这里是把操作数据库的所有权限给了demo,并且设置密码是password
如果希望该用户可以创建新的用户,并授权,就使用添加with grant option

grant all on *.* to 'demo'@'localhost' identified by 'password' with grant option;

5,刷新下。flush privileges;

问题:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
很久没用这台电脑的mysql了,今天需要连接数据库,启动数据库报错:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)

解决MySQL添加新用户-ERROR 1045 (28000)的问题

解决方法:

查阅资料后知道了,应该使用已知的用户名和密码登陆

mysql -u root -p

然而密码忘了,试了好几遍终于试出来了:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

然后修改成通用的密码,不乱折腾了:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

发现很多教程都过时了,我的版本是Server version: 8.0.19 MySQL ,最新的方法:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
mysql> flush privileges;

退出验证下看看有没有成功:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

可以看到修改密码成功了。

然后呢,我又假装密码忘了,把忘记密码的修改密码方法演示一下:
第一步:关闭Mysql服务
首先先停止mysql服务。可通过net stop mysql或者任务管理器中关闭。

以管理员权限操作:(这是第一个窗口)

解决MySQL添加新用户-ERROR 1045 (28000)的问题

解决MySQL添加新用户-ERROR 1045 (28000)的问题

第二步:跳过Mysql密码验证
进入命令提示符(管理员登陆)操作,进入mysql目录中bin文件夹下,mysql8.0与其他版本不同的地方在于无法直接使用mysqld --skip-grant-tables来跳过密码登录。在这我们使用mysqld -console --skip-grant-tables --shared-memory来跳过权限验证。

解决MySQL添加新用户-ERROR 1045 (28000)的问题

输入执行后没有反馈,新开一个管理员窗口重新执行。(这是第二个窗口)

进入目录后,确保自己已经关闭了Mysql的服务:net stop mysql

解决MySQL添加新用户-ERROR 1045 (28000)的问题

关闭Mysql服务之后,继续在D:\mysql-8.0.19-winx64\bin目录下进行操作:
输入

mysqld --console --skip-grant-tables --shared-memory

在输入这行代码之后,如下显示,我们就已经成功跳过Mysql的密码登录了:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

第三步:无密码方式进入Mysql
在上述步骤之后,再打开一个管理员模式运行的cmd.exe (这是第三个窗口)

进入mysql下的bin目录后,直接登录mysql

不需要通过net start mysql打开mysql服务

在命令行中输入以下代码

d:
cd D:\mysql-8.0.19-winx64\bin(此处输入自己电脑上的安装目录)
mysql -u root -p

如图:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

此时会显示让你输入密码,直接回车,就可以成功连接Mysql。

解决MySQL添加新用户-ERROR 1045 (28000)的问题

第四步:将登陆密码设置为空
输入代码,将密码设置为空(此时还不能直接修改密码,必须先设置为空,否则会报错)
输入:

use mysql; (使用mysql数据表)
update user set authentication_string='' where user='root';(将密码置为空)
quit; (然后退出Mysql)

操作如图:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

第五步:更改自己的登陆密码
这里分为两个部分

1.关闭前两个cmd窗口(一定要关闭!);
2.在第三个窗口中输入代码;

net stop mysql(关闭mysql服务,虽然会显示没有开启服务,但是以防万一)
net start mysql(再打开mysql服务)

(这里不要嫌麻烦,如果上一个mysql服务没关闭,我们依旧是无密码登陆)

操作如图:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

接着输入:

cd D:\mysql-8.0.19-winx64\bin (此处输入自己电脑上的安装目录)
mysql -u root -p

(此处会显示输入密码,直接回车就好了,第四步我们已经将他置为空了)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';(更改密码)

如图:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

最后一步:验证密码是否修改成功
输入:

quit(退出mysql)
mysql -u root -p

(输入新密码,再次登录)

图示:

解决MySQL添加新用户-ERROR 1045 (28000)的问题

补充:下面看下MySQL添加新用户

按照正常思维,创建用户和设置密码什么的,应该是一个动作完成的。然而事实并非如此。

我每次都是通过在网上找代码来创建MySQL的用户。如果无效,就再搜一段。

现在我心累了,必须写个自己的教程。

1,先要连接到MySQL,工具就是在终端上输入mysql。

一般来说可以设置几个参数,重要的是-u代表用户,比如root,或者guest,-p代表密码,-h代表地址,如果是localhost,可以省略。

例子 mysql --user user --host localhost --port 3306 --password

回车之后输入密码即可。

偶尔会遇到直接使用sudo mysql可以登录的情况。

2,选择mysql数据库。

use mysql;

3,创建用户,比如用户名是demo,则使用

create user demo;

4,给用户权限。

grant all on *.* to 'demo'@'localhost' identified by 'password' ;

这里是把操作数据库的所有权限给了demo,并且设置密码是password

如果希望该用户可以创建新的用户,并授权,就使用添加with grant option

grant all on *.* to 'demo'@'localhost' identified by 'password' with grant option;

5,刷新下。flush privileges;

参考地址:https://bytes.com/topic/mysql/answers/614815-creating-new-mysql-user

到此这篇关于MySQL添加新用户-ERROR 1045 (28000)解决办法的文章就介绍到这了,更多相关MySQL ERROR 1045 (28000)内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
解决MySQL存储时间出现不一致的问题
Apr 28 MySQL
MySQL获取所有分类的前N条记录
May 07 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
详解MySql中InnoDB存储引擎中的各种锁
Feb 12 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
MySQL池化框架学习接池自定义
Jul 23 MySQL
数据设计之权限的实现
Aug 05 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 MySQL
MySQL之MyISAM存储引擎的非聚簇索引详解
MySQL中B树索引和B+树索引的区别详解
MySQL的InnoDB存储引擎的数据页结构详解
一文搞清楚MySQL count(*)、count(1)、count(col)区别
Mar 03 #MySQL
SQL注入篇学习之盲注/宽字节注入
MySQL为数据表建立索引的原则详解
Mar 03 #MySQL
MySQL数据库完全卸载的方法
You might like
PHP 数组基础知识小结
2010/08/20 PHP
深入PHP数据加密详解
2013/06/18 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
点球小游戏python脚本
2018/05/22 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
应届毕业生应聘自荐信
2013/12/07 职场文书
企业总经理职责
2014/02/02 职场文书
运动会入场解说词
2014/02/07 职场文书
职工运动会感言
2014/02/07 职场文书
小摄影师教学反思
2014/04/27 职场文书
党员创先争优活动总结
2014/05/04 职场文书
某某同志考察材料
2014/05/28 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书