mysql数据库迁移
我把backup.sql打开一看,系统把建表语句全都给我加上了COLLATE=utf8mb4_0900_ai_ci,而这句在我自己之前建表时是没有的。但是我在导入这步报错了:ERROR 1273 (HY000) at line 25: Unknown collation: ‘utf8mb4_0900_ai_ci’目标:把指定的mysql数据库(本例中名字为ai_platform)从源机器,迁移至目
·
目标:把指定的mysql数据库(本例中名字为ai_platform)从源机器,迁移至目标机器
背景:源机器系统为ubuntu, 目标机器系统为centos
我全程都是在源机器上操作的
- 生成导出文件:
mysqldump -u [username] ai_platform > backup.sql
用这个命令可以也可以导出远程机器上的数据库:
mysqldump -h [remote_host] -P [remote_port] -u [username] -p [database_name] > backup.sql
- 导入:
sudo mysql -h [targetIp] -P [targetPort] -u [root] -p[psw] ai_platform < backup.sql
但是我在导入这步报错了:ERROR 1273 (HY000) at line 25: Unknown collation: ‘utf8mb4_0900_ai_ci’
我把backup.sql打开一看,系统把建表语句全都给我加上了COLLATE=utf8mb4_0900_ai_ci,而这句在我自己之前建表时是没有的。而两边数据库估计版本有差异,这方面有不兼容。
- 所以我用
sed
命令把backup.sql文件里的这句COLLATE=utf8mb4_0900_ai_ci全都删了:
sed -i 's/COLLATE=utf8mb4_0900_ai_ci//g' backup.sql
最后再执行上文的导出命令,成功。
更多推荐
已为社区贡献2条内容
所有评论(0)