mysql迁移版本_MySQL5.7迁移升级8.0版本
MySQL版本升级问题
由于OpenSSL等⼀些安全漏洞的原因,需要升级MySQL版本。
原本MySQL 5.7.30是使⽤安装包安装的,计划使⽤安装包升级补丁5.7.33,升级过程中2个步骤遇到认证问题:
第⼀个是在备份数据库的时候,安装包明知是升级,却不⽤配置的密码执⾏mysqldump,⽇志:
Backup files will be dumped to "C:\ProgramData\MySQL\MySQL Server 5.7\Backup\mysql_dump-2021-02-
24T16.49.36.sql".
Starting process with command: C:\Program Files\MySQL\MySQL Server 5.7\ --user=root --
host=localhost --port=3306 --default-character-set=utf8 --routines --events --single-transaction=TRUE --
all-databases --result-file="C:\ProgramData\MySQL\MySQL Server 5.7\Backup\mysql_dump-2021-02-24T16.49.36.sql"...
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
Process for mysqldump, with ID 7640, was run successfully and exited with code 2.
Ended configuration step: Backing up MySQL database
只好在配置⽂件中加⼊
skip-grant-tables=1
但是到执⾏安全配置时再次因为认证问题失败。
MySQL Installer直接升级失败
⽇志:
Beginning configuration step: Applying security settings
Attempting to update security settings.
Unable to update security settings. Authentication to host 'localhost' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: NO)
Ended configuration step: Applying security settings
删除所有ProgramData下的配置仍然失败,遂放弃5.7.30→5.7.33的升级安装,索性升级最新的8.0.22(zip版)。
备份数据库
使⽤旧版本运⾏,字符集指定utf8mb4,如果只写utf8,可能产⽣utf8mb3和utf8mb4的混淆。以下以gitea数据库为例:
< --user=root -p --host=localhost --port=3306 --default-character-set=utf8mb4 --routines --events --single-transaction=TRUE --databases gitea --result-file="D:\backup\mysql_dump-gitea.sql"
还原数据库
对新版本mysql进⾏初始化、新建服务等操作,停⽌旧版本服务,然后执⾏gitea数据库的还原:
mysqld --initialize --console
mysql -u root -p < D:\backup\mysql_dump-gitea.sql
执⾏的时间视数据量⼤⼩。
总结
mysql下载starting the server通过mysqldump导出数据库的⽅式可以⽐较简单的完成MySQL 5.7到8.0版本的升级⼯作。本质上就是新版本安装配置+数据迁移。注:这⾥都是INNODB的数据库类型,不涉及与MyISAM的转换。数据⽆价,谨慎操作!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论