mysql5.7和mysql8.0区别

mysql5.7之后的一个版本就是mysql8.0,之所以版本号跨度这么大是因为这5.7之后的版本区别确实很大,很多地方不一样了。

mysql5.7字符编码的问题

mysql5.7和之前版本,默认字符集为latin1,直接插入中文字符的时候会出现乱码的情况。所以在安装5.7及之前的版本的mysql的时候要把字符编码修改为utf8字符集,utf8字符集指的是utf8mb3。从mysql8.0开始,数据库默认字符编码改为utf8mb4。

1、查看编码命令:
show variables like 'character_%';
show variables like 'collation_%';
2、修改mysql数据目录下的my.ini配置文件

3、重启mysql服务

mysql8.0连接工具的问题

mysql8.0之后直接连接navicat会报错,这是因为mysql8.0默认采用了新的caching_sha2_password的身份验证方式,此方式并不兼容常规的老的web服务接口,所以navicat连接会报错,我们需要将默认的加密规则恢复为旧的mysql_native_password(还有一种方式就是升级数据库工具的版本,Navicat低版本有问题,Navicat15是没有这个问题的)

//使用mysql数据库
 USE mysql;

//更改root账户的加密规则为 mysql_native_password 并修改密码为 password 即可
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
 
 //刷新权限
 FLUSH PRIVILEGES;

回顾安装mysql8.0的时候,因为我们默认选择了新的授权认证方式,采用SHA256基础的密码加密方法,为了避免这个问题,我们可以在安装的时候选择下面一个传统的加密方式,保留5.x版本的兼容性。

更多推荐

mysql5.7和mysql8.0区别