1、Mysql8的優點
一些關鍵的增強包括:
SQL窗口函數,公用表表達式,NOWAIT和SKIP LOCKED,降序索引,分組,正則表達式,字符集,成本模型和直方圖。
JSON擴展語法,新功能,改進排序和部分更新。使用JSON表函數,您可以使用JSON數據的SQL機制。
GIS地理支持。空間參考系統(SRS),以及SRS感知空間數據類型,空間索引和空間功能。
可靠性 DDL語句已變得原子性和崩潰安全,元數據存儲在單個事務數據字典中。由InnoDB提供支持!
可觀察性性能架構,信息架構,配置變量和錯誤記錄的顯着增強。
可管理性遠程管理,撤消表空間管理和新的即時DDL。
安全 OpenSSL改進,新的默認身份驗證,SQL角色,分解超級特權,密碼強度等等。
性能 InnoDB在讀/寫工作負載,IO綁定工作負載和高爭用“熱點”工作負載方面明顯更好。增加了資源組功能,通過將用戶線程映射到CPU,爲用戶提供一個選項,以針對特定硬件上的特定工作負載進行優化。
基於以上的一些優點,所有我覺得在新項目中使用mysql8。
2、安裝Mysql8
2.1 下載mysql的安裝包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2.2 運行命令進行安裝Mysql源
yum localinstall mysql80-community-release-el7-1.noarch.rpm
2.3 檢查是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
2.4 安裝mysql
yum install mysql-community-server
2.5 啓動mysql服務
systemctl start mysqld
2.6 查看mysql啓動狀態
systemctl status mysqld
2.7 設置開機啓動
systemctl enable mysqld
systemctl daemon-reload
3、初始化配置mysql服務器
3.1 修改登錄密碼
mysql安裝完成之後,在/var/log/mysqld.log文件中給root生成了一個默認密碼。
grep 'temporary password' /var/log/mysqld.log
3.2 登陸mysql然後修改密碼
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '超強密碼+123';
3.3 添加遠程登錄用戶
update user set host='%' where user ='root';
flush privileges;
4 可能遇到的問題
4.1 MySQL8.0登錄提示caching_sha2_password問題解決方法
查看身份驗證類型
use mysql;
SELECT Host, User, plugin from user;
我們可以看到root
用戶的驗證器插件爲 caching_sha2_password
修改身份驗證類型並且修改密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的超強密碼';
FLUSH PRIVILEGES;