MySQL版本导致的修改密码命令不一致问题

问题描述

博主最近换了电脑,需要安装MySQL,于是从新到MySQL官网上下载安装包,奇怪的是下载的版本已经看不见熟悉的5.x了,都是8.x开始的,下载的时候需要设置一下密码,发现用以前的MySQL命令设置语法不对,遂对这个版本产生了兴趣,现将研究记录如下,供日后阅读。

当然,以前win版本命令行安装的方式依旧试用,具体操作可以参考5.7.20压缩版MYSQL从安装到坑爹
以前的MySQL版本是从5.x开始的,有热心网友给出了这样的记忆方式:
MySQL 5.5 -> MySQL 5
MySQL 5.6 -> MySQL 6
MySQL 5.7 -> MySQL 7
MySQL 8.0 -> MySQL 8

看上去果然比较舒服,另外升级之后的jar包也要做出相应的改变,和原来一样, 8.0版本的com.mysql.cj.jdbc.Driver 会兼容5.x版本的 com.mysql.jdbc.Driver ,先来看一看8.0版本的修改密码 的命令吧。
MySQL 8.0.4开始default-authentication-plugin参数默认设置的是caching_sha2_password,所以如果因为navicat连接报错的话,一般是这样的
在这里插入图片描述

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,
而在mysql8之后,加密规则是caching_sha2_password,
解决问题方法有两种,一种是升级navicat驱动, 一种是把mysql用户登录密码加密规则还原成mysql_native_password. 我用是第二种方式 :
首先查看数据库

mysql> show databases;
然后选择mysql数据库
mysql> use mysql;

mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| admin            | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| zhangj           | localhost |
+------------------+-----------+

注意我的root,host是’%’

你可能执行的是:

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123’;
改成:

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123’;

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 

FLUSH PRIVILEGES; #刷新权限 

MySQL5.x版本修改密码命令如下

update user set password=password("这里填写要设置的密码") where user="root";
 flush privileges; #刷新权限
 commit; #为保证成功多提交几次

除了上述的不同之外,我还是挺想了解一下MySQL8.x与以前的版本到底有哪些改变,最令人注意的就是存储引擎,事务管理以及索引这块了,遂调研如下。

隐藏索引在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。

降序索引MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。

可靠性InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。

小结
MySQL一直在进步,东西都在朝着越来越好的方向发展了,未来可期!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值