首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用排序规则将MySQL转储到MariaDB问题

使用排序规则将MySQL转储到MariaDB问题
EN

Database Administration用户
提问于 2021-07-21 11:54:59
回答 1查看 1.4K关注 0票数 1

我在一个带有MariaDB数据库的临时服务器(WindowsServer2012)上运行了一个django应用程序。当我推到暂存分支时,我有一个git钩子在本地运行mysqldump。在服务器上,我有一个批处理脚本从这个分支中提取,迁移django,导入转储,最后重新启动站点。看起来有点像这样:

代码语言:javascript
复制
@echo off
D:
cd 
cmd /k "git stuff && python manage.py migrate && mysql -uroot db < D:/repo/db.sql && stop/start site... && exit
PAUSE

遗憾的是,当脚本到达转储导入时,它会发出一个错误,说它不知道排序规则(ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_0900_ai_ci' )。在googling之后,我发现我只需在编辑器中打开sql,并将所有'utf8mb4_0900_ai_ci‘替换为'utf8mb4_general_ci’。当然,对于这一次,这并不是完全有用的,因为这个转储是自动化过程的一部分。

有人知道自动化排序规则替换的简单解决方案吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-07-21 22:12:17

{与@nbk建议(在对这个问题的评论中)使用:sed -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' -i myfilename.sql }

我认为在Windows中运行Unix命令有两个主要选项:

  1. "Windows Linux文档子系统(WSL)“-这是微软提供的。根据"Windows与Linux的互操作性“页面,您应该能够通过wsl.exe命令运行 sed ,如: C:>wsl sed.请注意,WSL2需要超调,这可能会阻止VMWare和/或VirtualBox的工作(如果您使用其中之一或两者之一)。起初他们没有使用Hyper-V,然后他们使用了Windows,然后他们停止了使用Hyper-V的工作,目前的状态还不清楚(请参阅:WSL2 2破坏VirtualBox 6.1 #798 )
  2. 许多Unix/Linux命令已经通过各种第三方包移植到Windows上。我所知道的两种情况是:
    • 西格温 -这个项目是积极维护的(最近的构建是几个月前)。这是一个相当大的项目(目前是9907个“包”--命令、库等),但我认为您可以选择只安装所需的组件。您可以看到包这里的完整列表。
    • UnxUtils --比Cygwin更小的项目,目前没有维护(最近的更新是从2014年开始,在一个diff站点上进行的;稍后会给出链接),但我认为这个项目重量更轻/更容易接受一两个命令,因为没有依赖项。有两个站点有文件要下载,还不清楚哪个是更新的,但我想我会转到这个站点:http://unxutils.sourceforge.net/并获得UnxUtils.zip和<>UnxUpdates.zip文件。

在这两种情况下,您都可以得到收藏夹,例如:sedgawk等等。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/295954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档