在没有 mysqldump 的情况下导出/导入大型 MySQL 数据库

use*_*923 7 mysql mysqldump export import

我试图从包含数百个表的数据库中导出大约 150GB 的数据,并且发现 mysqldump 非常有问题。

运行简单的 --all-databases 转储成功后,但导入总是遇到随机(和频繁)错误。这些通常是 SQL 语句中的语法错误,因为转储文件中的引号转义不正确。

我之前通过复制实际数据文件完成了原始数据传输,但是我试图导入的目标服务器不允许我访问文件系统。

对于非常大的导出/导入,是否还有其他工具比 mysqldump 更少错误?

Dan*_*lis 1

如果源数据库和目标数据库都是 MySQL,您可以尝试先导出为 .csv 格式,然后再导入该文件。

您可以使用以下内容创建 .csv 文件:

SELECT * FROM table INTO OUTFILE '/home/tables_csv/table' FIELDS ENCLOSED BY '"' TERMINATED BY ', ';
Run Code Online (Sandbox Code Playgroud)

我意识到,如果你有数百张桌子,那么它的用处将会有限。

另一种选择是确保您在两个系统上都使用最新的 MySQL 版本,因为这可能包括对您所看到的 mysqldump 中的错误的更正。我以前没有做过 150GB,但是将数据库移动到 2GB 我没有遇到您描述的问题 - 那是使用 MySQL v5.5。希望有帮助。