MySQL5.7原地升级MySQL8.0.26步骤

测试环境服务器资源紧张:原地升级MySQL数据库(MySQL5.7的datadir目录下的数据不动):

当前数据库版本:mysql5.7-25,计划升级到mysql8.0.26

数据库软件均是从官网下载编译好的二进制文件。

测试环境升级前,根据测试环境配置,先在笔记本虚拟机上模拟测试一下:

一、需要注意事项:
1、获取非innodb的表及更改语句:
select concat(table_schema,'.',table_name) as table_name,engine,concat('alter table ',table_schema,'.',table_name,' engine=innodb;')  from information_schema.tables where engine != 'innodb'and table_schema not in('mysql','sys','information_schema','performance_schema');
2、8.0版本sql_mode不支持 NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有 NO_AUTO_CREATE_USER
3、mysql_native_password插件:MySQL8.0.4开始,默认身份认证开始改变。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”,在[mysqld]项中添加配置:default_authentication_plugin = mysql_native_password
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
4、注意字符集和校对规则:
   通过在my.cnf文件中设置character-set-server和collation_server参数来实现。
   default-character-set = utf8
   character_set_server = utf8
   collation_server = utf8_bin
5、修改密码验证插件:
   可在my.cnf文件中设置default-authentication-plugin='mysql_native_password'
6、注意DB默认字符集:
   默认字符集由latin1变为utf8mb4          


二、解压mysqlshell工具:

下载地址: https://dev.mysql.com/downloads/shell/
tar -zxvf mysql-shell-8.3.0-linux-glibc2.17-x86-64bit.tar.gz
mv mysql-shell-8.3.0-linux-glibc2.17-x86-64bit mysqlsh
检查升级是否存在错误:
cd /data/mysqlsh/bin
./mysqlsh -uroot -p -S /tmp/mysql.sock -e "util.checkForServerUpgrade()" > util.checkForServerUpgrade.log
根据检查日志中的告警或报错,进行处置。

三、升级数据库软件:

1、断开业务连接,关闭数据库;
set global innodb_fast_shutdown=0;
shutdown;

2、把解压后的mysql-8.0.26-linux-glibc2.17-x86_64-minimal目录拷贝到/usr/local目录下,
删除mysql--mysql5.7的软连接,新建mysql软连接指向mysql8026:
cd /usr/local
rm -rf mysql
ln -s mysql-8.0.26-linux-glibc2.17-x86_64-minimal mysql

四、尝试执行数据库升级操作:
mysqld_safe --defaults-file=/data/mysql/my.cnf --user=mysql --upgrade=FORCE
监控mysql.err日志的报错情况,根据实际解决参数问题。

可能会经过多次参数修改后,才能升级成功。


MySQL8.0数据库默认是开启SSL认证的:

从代码层面,在JDBC 连接中,使用 &useSSL=false 参数,表示不使用SSL 认证。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值