MySQL 8.0 修改密码 新建用的正确方式
mysql 更新完密码,总是拒绝连接、登录失败?MySQL8.0 不能通过直接修改 mysql.user 表来更改密码。正确更改密码的方式备注: 清空root密码
MySQL8.0 不能通过直接修改 mysql.user 表来更改密码。
因为authentication_string字段下只能是MySQL加密后的43位字符串密码,其他的导致错误。错误不报出,但是无法再登录mysql,总是会提示 无法认证。
参考:MySQL8.0
mysql> USE mysql;
Database changed
mysql> UPDATE user SET authentication_string="123456" WHERE user="root";
Query OK, 1 row affected (0.39 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> FLUSH privileges; # 刷新保存
Query OK, 0 rows affected (0.13 sec)
mysql 5.7.9 之后取消了password 函数,authentication_string=password("123456") 会报错
C:\WINDOWS\system32>mysql -u root -p
Enter password: ******
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
1234567891011121314
如果 你已经这样更改密码,并且导致了无法进入mysql。本人表示同情之时,还为了你提供了详细的解决方案。请查看本文备注:清空root 密码
正确更改密码的方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "your_password";
mysql> USE mysql;
Database changed
mysql> ALTER USER 'root'@'localhost' IDENTIFIEED WITH mysql_native_password BY "markjun";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIEED WITH mysql_native_password BY "markjun"' at line 1
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "markjun";
Query OK, 0 rows affected (0.18 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";
Query OK, 0 rows affected (0.08 sec)
mysql> SELECT user, authentication_string FROM user;
+------------------+------------------------------------------------------------------------+
| user | authentication_string |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)
mysql> FLUSH privileges;
Query OK, 0 rows affected (0.38 sec)
mysql> quit;
Bye
F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root -p
Enter password: *******
...
mysql>
备注: 清空root密码
停止 MySQL 任务 net stop MySQL
mysqld 命令 mysqld --console --skip-grant-tables --shared-memory
无密码进入mysql mysql -u root
清空root 密码 UPDATE user SET authentication_string="" WHERE user=“root”;
另一个终端无密码进入
F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root -p
Enter password: *******
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> USE mysql;
Database changed
mysql> SELECT user, authentication_string FROM user;
+------------------+------------------------------------------------------------------------+
| user | authentication_string |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root | 123456 |
+------------------+------------------------------------------------------------------------+
4 rows in set (0.34 sec)
mysql> UPDATE user SET authentication_string="" WHERE user="root";
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT user, authentication_string FROM user;
+------------------+------------------------------------------------------------------------+
| user | authentication_string |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root | |
+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)
mysql> FLUSH privileges;
Query OK, 0 rows affected (0.10 sec)
mysql> quit;
Bye
停止 mysqld 任务,Ctrl+C 结束任务,或者直接关闭 运行 mysqld 的 cmd 终端。
需要先停止运行上述 mysqld 任务,否则报错
F:\MySQL\mysql-8.0.13-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
先停止上述 mysqld 任务
F:\MySQL\mysql-8.0.13-winx64\bin>net start mysql
MySQL 服务正在启动 ...
MySQL 服务已经启动成功。
现在 mysql root 已经没有了密码
F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Mysql8.0.20 创建用户并授权
创建用户
-- mysql的用户表在 mysql.user 表中
use mysql;
-- username:用户名称
-- %:是通配符指的是任意IP,这个位置也可以指定特定的ip,或者localhost代表本机才可以登录
create user 'username'@'localhost' identified by 'password';
create user 'username'@'%' identified by 'password';
-- 查看新创建的用户
select * from user where user = 'username';
-- 查看权限
show grants for 'username'@'localhost';
授权
- 超级用户权限
-- grant:授权
-- all privileges:所有的权限
-- on *.*:在哪个数据库的那个表
-- to username@localhost:对哪个用户的哪个主机
-- with grant option:是不是将username用户自己本身的权限赋给其他账户
grant all privileges on *.* to 'username'@'localhost' with grant option;
-- 立即生效
flush privileges;
- 普通用户权限
-- usage:无权限,当你想创建一个没有权限的用户时候,指定usage
-- show:查看的权限,赋权限报错了,我也不知道咋回事
-- view:视图的权限(mysql8.0+赋权限出错)ERROR 3619 (HY000): Illegal privilege level specified for VIEW,如下图所示。
-- create temporary tables:创建临时表的权限
-- excute:执行的权限
grant usage,select,insert,update,delete,create temporary tables,execute on *.* to username@localhost;
MySQL 8.0 修改密码 新建用的正确方式的更多相关文章
- Mysql 8.0修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
- MySql数据库安装&修改密码&开启远程连接图解
相关工具下载地址: mysql5.6 链接:http://pan.baidu.com/s/1o8ybn4I密码:aim1 SQLyog-12.0.8 链接:http://pan.baidu.com/s ...
- linux下mysql 8.0忘记密码后重置密码
1://免密码登陆 找到mysql配置文件:my.cnf, 在[mysqld]模块添加:skip-grant-tables 保存退出: 2://使配置生效 重启mysql服务: service ...
- mysql查看和修改密码策略
8.X版本: #查看密码策略 show variables like '%validate_password.policy%'; show variables like '%validate_pass ...
- mysql安装及修改密码
MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list' C:\Users\Administrator& ...
- mysql 5.7修改密码
关闭正在运行的 MySQL : [root@www.woai.it ~]# service mysql stop 运行 [root@www.woai.it ~]# mysqld_safe --skip ...
- MYSQL 5.7 修改密码、登录问题
mysql5.7 关于密码问题 报错: ERROR 1862 (HY000): Your password has expired. To log in you must change it usin ...
- mysql client--笔记-修改密码-登录-查看数据库-创建数据库
1 登录 mysql client 打开 mysql client -输入密码 123 回车 2 show database; ---显示数据库 3 切换数据库:use mysql 4 describ ...
- 无法给MySQL root用户修改密码的解决方法
本人编译安装完MySQL数据库,想给root用户修改密码,结果无法修改,并且报错,报错大概信息如下: mysqladmin: connect to server at 'localhost' fail ...
- MYSQL 5.7修改密码,登录问题
mysql5.7 关于密码问题 报错: ERROR 1862 (HY000): Your password has expired. To log in you must change it usin ...
随机推荐
- Typora+PicGo+Gitee图床
Typora+PicGo+Gitee图床 介绍 Typora:一个用于写文章的Markdown 编辑器,Typora 没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的 ...
- 15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用
15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用 @ 目录 15. Docker容器监控之(CAdvisor+InfluxDB+Granfan ...
- axurerp9怎么汉化:Axure RP9 中文激活安装教程
Axure RP 9是一款一款专业级快速产品原型设计工具,使用它可以让用户快速.高效创建应用软件或Web网站的线框图.流程图.原型和规格说明文档.采用了极简主义的设计,界面布局更加清爽简洁,操作也非常 ...
- 2024NOIP邮寄
渺渺兮身外无物,无喜无悲无怖,不过是大梦一场,各自沉浮. 前言 原计划这篇游记兼总结是在考完后一天之内写出来(12.1 前),但是一方面是因为家里的笔记本插上 U 盘写不了东西,一方面是这次 NOIP ...
- Codeforces Round 1007 (Div. 2) 比赛记录
Codeforces Round 1007 (Div. 2) 比赛记录 比赛链接 很喜欢的一场比赛,题目质量很高,不是手速场,做出题超级有成就感,赛时切掉了 A - D1,上大分了. B卡得有点久,其 ...
- Keepalived学习,双机主备高可用
一.主机安装 1.解压 tar -zxvf keepalived-2.0.18.tar.gz 2.解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了 3.使用configure ...
- postman 提示Http Status 400 -Bad Request
Http Status 400 -Bad Request 将headers下面的选项全部勾选 新版postman自带的内容
- angular使用nz-zorro的时间选择器,设置可选时间范围
备份一下 https://blog.csdn.net/qq_34790644/article/details/87098960 https://blog.csdn.net/fsxxzq521/arti ...
- mysql存储过程之循环遍历查询结果集
mysql存储过程之循环遍历查询结果集 -- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除 DROP PROCEDURE IF EXISTS init_reportUrl; -- 创建存储 ...
- Oracle操作审计
因为信安的要求,要对Oracle加审计.看了一下,原来是有开的,类型为DB: SQL> show parameter audit; NAME TYPE VALUE --------------- ...