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 修改密码 新建用的正确方式的更多相关文章

  1. Mysql 8.0修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

  2. MySql数据库安装&修改密码&开启远程连接图解

    相关工具下载地址: mysql5.6 链接:http://pan.baidu.com/s/1o8ybn4I密码:aim1 SQLyog-12.0.8 链接:http://pan.baidu.com/s ...

  3. linux下mysql 8.0忘记密码后重置密码

    1://免密码登陆 找到mysql配置文件:my.cnf, 在[mysqld]模块添加:skip-grant-tables   保存退出: 2://使配置生效 重启mysql服务:  service ...

  4. mysql查看和修改密码策略

    8.X版本: #查看密码策略 show variables like '%validate_password.policy%'; show variables like '%validate_pass ...

  5. mysql安装及修改密码

    MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list' C:\Users\Administrator& ...

  6. mysql 5.7修改密码

    关闭正在运行的 MySQL : [root@www.woai.it ~]# service mysql stop 运行 [root@www.woai.it ~]# mysqld_safe --skip ...

  7. MYSQL 5.7 修改密码、登录问题

    mysql5.7 关于密码问题 报错: ERROR 1862 (HY000): Your password has expired. To log in you must change it usin ...

  8. mysql client--笔记-修改密码-登录-查看数据库-创建数据库

    1 登录 mysql client 打开 mysql client -输入密码 123 回车 2 show database; ---显示数据库 3 切换数据库:use mysql 4 describ ...

  9. 无法给MySQL root用户修改密码的解决方法

    本人编译安装完MySQL数据库,想给root用户修改密码,结果无法修改,并且报错,报错大概信息如下: mysqladmin: connect to server at 'localhost' fail ...

  10. MYSQL 5.7修改密码,登录问题

    mysql5.7 关于密码问题 报错: ERROR 1862 (HY000): Your password has expired. To log in you must change it usin ...

随机推荐

  1. Typora+PicGo+Gitee图床

    Typora+PicGo+Gitee图床 介绍 Typora:一个用于写文章的Markdown 编辑器,Typora 没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的 ...

  2. 15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用

    15. Docker容器监控之(CAdvisor+InfluxDB+Granfana)的详细安装和常规使用 @ 目录 15. Docker容器监控之(CAdvisor+InfluxDB+Granfan ...

  3. axurerp9怎么汉化:Axure RP9 中文激活安装教程

    Axure RP 9是一款一款专业级快速产品原型设计工具,使用它可以让用户快速.高效创建应用软件或Web网站的线框图.流程图.原型和规格说明文档.采用了极简主义的设计,界面布局更加清爽简洁,操作也非常 ...

  4. 2024NOIP邮寄

    渺渺兮身外无物,无喜无悲无怖,不过是大梦一场,各自沉浮. 前言 原计划这篇游记兼总结是在考完后一天之内写出来(12.1 前),但是一方面是因为家里的笔记本插上 U 盘写不了东西,一方面是这次 NOIP ...

  5. Codeforces Round 1007 (Div. 2) 比赛记录

    Codeforces Round 1007 (Div. 2) 比赛记录 比赛链接 很喜欢的一场比赛,题目质量很高,不是手速场,做出题超级有成就感,赛时切掉了 A - D1,上大分了. B卡得有点久,其 ...

  6. Keepalived学习,双机主备高可用

    一.主机安装 1.解压 tar -zxvf keepalived-2.0.18.tar.gz 2.解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了 3.使用configure ...

  7. postman 提示Http Status 400 -Bad Request

    Http Status 400 -Bad Request 将headers下面的选项全部勾选 新版postman自带的内容

  8. angular使用nz-zorro的时间选择器,设置可选时间范围

    备份一下 https://blog.csdn.net/qq_34790644/article/details/87098960 https://blog.csdn.net/fsxxzq521/arti ...

  9. mysql存储过程之循环遍历查询结果集

    mysql存储过程之循环遍历查询结果集 -- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除 DROP PROCEDURE IF EXISTS init_reportUrl; -- 创建存储 ...

  10. Oracle操作审计

    因为信安的要求,要对Oracle加审计.看了一下,原来是有开的,类型为DB: SQL> show parameter audit; NAME TYPE VALUE --------------- ...