mysql - mysql 到 mariadb 导入不起作用(语法错误)
问题描述
我尝试转储一个 mysql 数据库并将其导入我的本地 mariadb 服务器。我要做的是:
mysqldump -u db_usr -p -h db.servers.org db_name > db_name.sql
接着
mysql -u db_usr -p < db_name.sql
收到此错误:
ERROR 1064 (42000) at line 4171: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GENERATED ALWAYS AS (json_unquote(json_extract(`price`,'$.taxStatus'))) VIRTU...' at line 19
我的本地环境:
mysql -V
mysql Ver 15.1 Distrib 10.5.9-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
mysqldump -V
mysqldump Ver 10.19 Distrib 10.5.9-MariaDB, for debian-linux-gnu (x86_64)
在远程端有一个mysql服务器正在运行:
mysql -u db_usr -p -h db.servers.org
[...]
Server version: 5.7.29 MySQL Community Server (GPL)
[...]
现在我想知道:
- 如果我使用本地 mysqldump (mariadb-dump) 转储数据库,它不应该使转储与我的本地 mariadb 安装兼容吗?
- 有什么方法可以将转储从 mysql 转换/兼容到 mariadb,反之亦然?
由于我从来没有遇到过这种问题,我担心将来随着mariadb和mysql的进一步分化,这种问题会更频繁地发生。我们将如何处理例如。如果源是旧的 mysql 服务器并且在我们想使用 mariadb 的新环境中托管迁移?
解决方案
推荐阅读
- amazon-web-services - Playstore 上的实时应用程序上的 AWS 凭证泄漏
- python - Pandas:在单元格内的列表中查找第一个 True 值
- python - 在熊猫中读取文件时自动转换为整数
- algorithm - Dijkstra 和 MST 的关系
- java - Open api 3 中的 OAuth/OIDC 与 Micronaut 招摇
- javascript - Electron + Vue API 请求落到 app://
- xslt - 在 XSLT 中用零右填充字符串
- redis - Redis 中 LTRIM 命令的时间复杂度是多少?
- javascript - 未捕获的 ReferenceError:Laravel 8 中未定义路由
- python - 为什么我不能修补 multiprocessing.Process?