解决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主从复制及读写分离
May 07 MySQL
SQL注入的实现以及防范示例详解
Jun 02 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
Jul 01 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL常用慢查询分析工具详解
Aug 14 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
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 实现12306登录功能实例代码
2018/02/09 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
Python中的面向接口编程示例详解
2021/01/17 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
结婚喜宴家长答谢词
2014/01/15 职场文书
老人祝寿主持词
2014/03/28 职场文书
数学教育专业求职信
2014/07/22 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
民事答辩状格式范文
2015/05/21 职场文书
2015中秋祝酒词
2015/08/12 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers