首页 > 数据库 >MySQL 8.0 数据复制到 5.7

MySQL 8.0 数据复制到 5.7

时间:2023-02-03 16:56:54浏览次数:47  
标签:复制到 8.0 ci utf8mb4 utf8 5.7 WSL 文件系统 文件

场景

公司后端机子给前端连接协同开发,但是又不太方便,正好我手上公司的电脑没有用,就准备拿来当专门的后端接口开发服务器

然后就开始在本子上新搭一个环境,并迁移 代码 和 数据库

问题

MySQL 8.0 迁移数据库到 5.7 时,尝试了导出SQL、NavCat备份,都出现了错误,导致结束后很多表没有(恢复失败)
查看错误信息提示:编码错误/表不存在

解决

网上查阅资料后认为是
因为高版本向低版本 导入/导出 数据库,存在版本兼容问题
具体来说就是:

字符集由utf8mb4替换为utf8
排序规则由utf8mb4_0900_ai_ci替换为utf8_general_c

尝试对 SQL 文件做字符替换,当然实现方式非常多,可以用编辑器轻松实现
我这里是直接使用Linux下的sed命令,用Windows自带的 WSL

其实也没有咋用过,然后就遇到了:
想要把 sql 文件,从Windows文件系统复制到 WSL 的文件系统中,第一反应想当然地就在文件管理器直接复制一份到 WSL 磁盘

感觉挺合理,但事实是被告知“权限不足”
也不知道怎么才能足,网上查资料好像是不能这么干的(至少是不推荐)
正确的做法是通过 WSL 的盘符访问Windows文件系统中的文件

# 复制wondows盘符下的文件到WSL文件系统
cp /mnt/c/源路径/源文件 /目标路径/目标文件

然后再执行操作

sed -i "s/utf8mb4_0900_ai_ci/utf8_general_ci/g" /data/backup/app.sql
sed -i "s/utf8mb4/utf8/g" /data/backup/app.sql

最后在 CMD 用source命令执行 SQL,导入数据库

标签:复制到,8.0,ci,utf8mb4,utf8,5.7,WSL,文件系统,文件
From: https://www.cnblogs.com/yaocy/p/17089504.html

相关文章

  • Ubantu 安装 MySQL 8.0 教程
    第一步:更新软件包$sudoaptupdate第二步:安装mysql8.0$sudoaptinstallmysql-server-8.0-y第三步:查询安装的mysql版本$mysql--versionmysqlVer8.0......
  • redis-desktop-manager-0.8.0.3844
    redis-desktop-manager-0.8.0.3844下载地址:https://www.aliyundrive.com/s/Y2fobkVjAdF链接:https://pan.baidu.com/s/1keQMs8Tiaj4liE6tgBe82A提取码:nrt4......
  • Ubuntu 18.04 编译 liburing
    First,youhavetoclonetherepo:gitclonehttps://github.com/axboe/liburing.gitThenyoucanbuild:make-C./liburingAfterthat,youcancompiley......
  • MySQL8.0安装
    MySql8.0安装下载MySql8.0解压版下载地址:https://dev.mysql.com/downloads/mysql/解压mysql配置MySQL80的环境变量在解压的根目录下添加my.ini文件[mysqld]#设置......
  • MySQL------8.0新特性:公用表表达式
    公用表表达式(或通用表表达式)简称为CTE(CommonTableExpressions)。CTE是一个命名的临时结果集,作用范围是当前语句。CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点......
  • Docker 安装 MySQL5.7
    1.拉取数据库镜像dockerpullmysql:5.7 dockerimages命令查看镜像是否下载成功dockerimages2.配置mysql创建mysql目录,用于存放mysql相关配置及数据mkdir-p......
  • 根composer.json需要php^8.0,但您的php版本(7.4.27)不满足该要求
    我安装了php7.4,但当我在项目中写入composerinstall时,我看到了以下错误:Rootcomposer.jsonrequiresphp^8.0butyourphpversion(7.4.27)doesnotsatisfythatreq......
  • 在linux下安装mysql8.0.22
    前提准备第一步:检查是否有安装过mysql命令:# rpm -qa|grep-Imysql,使用rpm方式进行验证,其中i表示忽略大小写 假如安装过了mysql则需要先卸载命令:# rpm -e--no......
  • mysql8.0远程访问配置
    mysql8.0远程访问配置一、修改bind-address查找配置文件my.confwhichmysql/usr/bin/mysql--verbose--help|grep-A1'Defaultoptions'vimy.cnfbind-addres......
  • Dynamics 365 视图界面,通过分隔符实现批量查询数据(已知编号数组,直接复制到视图可以直
    效果:  源码实现:publicclasstest_RetrieveMultiple_pre:IPlugin{publicvoidExecute(IServiceProviderserviceProvider){//上下文......