一、MySQL 8.0新特性: 1、默认字符集由latin1变为utf8mb4 2、MyISAM系统表全部换成InnoDB表 3、自增主键AUTO_INCREMENT的值支持持久化 4、InnoDB表的DDL支持事务完整性 5、支持在线修改全局参数并持久化 6、新增降序索引 7、对于group by字段不再隐式排序 8、大幅改进了对JSON的支持 9、支持redo和undo日志加密 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、关闭firewalld和SELinux 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./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时提示“错误号码2058:Plugin 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; |
|