环境有:
1、centos服务器 CentOS Linux release 7.9.2009 (Core)
数据库Server version: 5.7.39 MySQL Community Server (GPL)
2、本机win10系统
修复过程:
1、备份数据,数据库名是db1
systemctl stop mysqld
tar -cvf dbbackup.tar /data/mysql/db1/*.*
备份数据库结构
mysqldump --opt -d db1 -uroot -p > db1.sql
把dbbackup.tar和db1.sql下载到本机电脑备用
2、本机创建一个新的数据库,先测试,如 db2
create database db2 default CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
关闭mysql服务
net stop mysql
进入本机db2数据存放.ibd文件的文件夹,把所有.ibd把文件删除。
再重启MySQL服务,然后,再关闭一次mysql服务
net start mysql
net stop mysql
把dbbackup.tar的.ibd文件复制到本机db2数据存放.ibd文件的文件夹
再重启MySQL服务
3、使用navicate工具打开db2数据库,对所有表执行命令
ALTER TABLE 表名CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4、此时应该所有表都已访问,并且数据是与服务器备份的一样
5、可以在本机转储数据为sql,然后再上传到数据库,重新建一个数据库进行导入