一、MySQL 8.0新特性:
1、默認(rèn)字符集由latin1變?yōu)?/span>utf8mb4
2、MyISAM系統(tǒng)表全部換成InnoDB表
3、自增主鍵AUTO_INCREMENT的值支持持久化
4、InnoDB表的DDL支持事務(wù)完整性
5、支持在線修改全局參數(shù)并持久化
6、新增降序索引
7、對于group by字段不再隱式排序
8、大幅改進(jìn)了對JSON的支持
9、支持redo和undo日志加密
10、InnoDB select for update跳過鎖等待
11、在SQL語法中增加SET_VAR語法
12、使用INVISIBLE關(guān)鍵字在創(chuàng)建表或進(jìn)行表變更中設(shè)置索引是否可見
13、支持直方圖
14、新增innodb_dedicated_server參數(shù)
15、日志分類更詳細(xì)
16、undo空間自動回收
17、新增資源組功能,用于調(diào)控線程優(yōu)先級及綁定CPU
18、增加角色管理
二、MySQL 8.0安裝與配置:
1、關(guān)閉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.mysql.com/downloads/mysql/
6、上傳所有RPM軟件包至服務(wù)器的/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查看詳細(xì)幫助信息
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安全配置向?qū)В?/span>
# cat /var/log/mysqld.log | grep password --> x:o:&mg-r2Id
# mysql_secure_installation
12、授權(quán)遠(yuǎn)程用戶登錄:
# mysql -uroot -p
mysql> create user 'root'@'%' identified by '123456';
mysql> grant all on *.* to 'root'@'%';
mysql> flush privileges;
備注:MySQL 8.0已經(jīng)不支持在grant授權(quán)的同時創(chuàng)建用戶,而是需要先創(chuàng)建用戶,再進(jìn)行授權(quán)
13、使用客戶端工具Navicat Premium(版本12.1.17)遠(yuǎn)程連入MySQL 8.0:
備注:如果使用客戶端工具連接MySQL 8.0時提示“錯誤號碼2058:Plugin caching_sha2_password could not be loaded”,出現(xiàn)這個錯誤提示的原因是MySQL 8.0之前的版本中加密規(guī)則是mysql_native_password,而在MySQL 8.0之后的版本中加密規(guī)則是caching_sha2_password,解決此問題的方法有以下2種
(1)升級客戶端工具版本
(2)把MySQL用戶登錄密碼加密規(guī)則還原成mysql_native_password:
a、修改密碼為永不過期:
mysql> alter user 'root'@'%' identified by '123456' password expire never;
b、修改密碼并指定MySQL用戶登錄密碼加密規(guī)則為mysql_native_password:
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
c、刷新授權(quán)表:
mysql> flush privileges;