MySQL5升级到8
# 1. 整形显示宽度
整数类型的显示宽度在 MySQL 中已被标记为过时,并且在将来的版本中将被移除。
例如: BIGINT(20)、INT(10)、TINYINT(1) 要修改为 BIGINT、INT、TINYINT
可通过正则匹配替换:int[(]\d*[)] 替换为 int
# 2. sql_mode支持问题
8.0版本sql_mode不支持NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有NO_AUTO_CREATE_USER。
# 3. 默认身份认证插件变更
8.0版本的默认身份认证插件是caching_sha2_password,具有更优越的安全性和性能。但可能造成客户端的连接问题。
可以使用MySQL5的插件mysql_native_password,修改配置文件:
[mysqld]
default_authentication_plugin=mysql_native_password
或者
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';
FLUSH PRIVILEGES;
# 4. 默认字符集由latin1变为utf8mb4
# 5. 持久化设置
MySQL8.0 新增 SET PERSIST 的命令,该命令的配置值保存到数据目录下的mysqld-auto.cnf文件中,待重启后,读取该文件,用其中的配置覆盖缺省的配置文件,补充了SET GLOBAL 命令只能临时生效的不足; 命令的使下如:
SET PERSIST max_connections = 400;