一、MySQL 8.0新特性:

1、默认字符集由latin1变为utf8mb4

2、MyISAM系统表全部换成InnoDB

3、自增主键AUTO_INCREMENT的值支持持久化

4、InnoDB表的DDL支持事务完整性

5、支持在线修改全局参数并持久化

6、新增降序索引

7、对于group by字段不再隐式排序

8、大幅改进了对JSON的支持

9、支持redoundo日志加密

10、InnoDB select for update跳过锁等待

11、SQL语法中增加SET_VAR语法

12、使用INVISIBLE关键字在创建表或进行表变更中设置索引是否可见

13、支持直方图

14、新增innodb_dedicated_server参数

15、日志分类更详细

16、undo空间自动回收

17、新增资源组功能,用于调控线程优先级及绑定CPU

18、增加角色管理


二、MySQL 8.0安装与配置:

1、关闭firewalldSELinux

2、删除CentOS 7自带的MariaDB

# rpm -qa | grep -i mariadb --> mariadb-libs-5.5.60-1.el7_5.x86_64

# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

3、删除原有的MySQL# rpm -qa | grep -i mysql                //有就删除

4、删除原有的MySQL配置文件:# find / -name my.cnf     //有就删除

5、下载MySQL 8.0,下载地址https://dev.mysql.com/downloads/mysql/

6、上传所有RPM软件包至服务器的/tmp目录

mysql-community-client-8.0.16-1.el7.x86_64.rpm

mysql-community-libs-8.0.16-1.el7.x86_64.rpm

mysql-community-common-8.0.16-1.el7.x86_64.rpm

mysql-community-libs-compat-8.0.16-1.el7.x86_64.rpm

mysql-community-devel-8.0.16-1.el7.x86_64.rpm

mysql-community-server-8.0.16-1.el7.x86_64.rpm

7、安装MySQL 8.0

# cd /tmp

# yum -y localinstall *.rpm

8、初始化MySQL 8.0

# ll -lh /var/lib/mysql -->

# mysqld -I --user=mysql

# ll -lh /var/lib/mysql

备注:使用命令# mysqld --verbose --help | less查看详细帮助信息

9、修改/etc/my.cnf配置文件:

# cp /etc/my.cnf /etc/my.cnf.bak

# vim /etc/my.cnf,在[mysqld]配置段中新增如下代码:

port=3306

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

skip_name_resolve=1

innodb_file_per_table=1

10、启动MySQL 8.0

# systemctl start mysqld.service

# ss -tunlp | grep 3306

# systemctl status mysqld.service

# systemctl enable mysqld.service

11、MySQL 8.0安全配置向导:

# cat /var/log/mysqld.log | grep password --> x:o:&mg-r2Id

# mysql_secure_installation

12、授权远程用户登录:

# mysql -uroot -p

mysql> create user 'root'@'%' identified by '123456';

mysql> grant all on *.* to 'root'@'%';

mysql> flush privileges;

备注:MySQL 8.0已经不支持在grant授权的同时创建用户,而是需要先创建用户,再进行授权

13、使用客户端工具Navicat Premium(版本12.1.17)远程连入MySQL 8.0

备注:如果使用客户端工具连接MySQL 8.0时提示“错误号码2058Plugin caching_sha2_password could not be loaded”,出现这个错误提示的原因是MySQL 8.0之前的版本中加密规则是mysql_native_password,而在MySQL 8.0之后的版本中加密规则是caching_sha2_password,解决此问题的方法有以下2

(1)升级客户端工具版本

(2)MySQL用户登录密码加密规则还原成mysql_native_password

a、修改密码为永不过期:

mysql> alter user 'root'@'%' identified by '123456' password expire never;

b、修改密码并指定MySQL用户登录密码加密规则为mysql_native_password

mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';

c、刷新授权表:

mysql> flush privileges;