SQL 导入缺失的表

Posted

技术标签:

【中文标题】SQL 导入缺失的表【英文标题】:SQL imports missing tables 【发布时间】:2013-02-06 19:54:21 【问题描述】:

我正在通过 phpMyAdmin 一次安装从 Magento 数据库导出,我尝试将其导出到 .sql 和 tar.gz 中。

当我在另一个安装中导入该数据库时,我没有收到任何错误,但缺少表,所以我只有一半的表,我看到在字母 L(log_visitors 表)之后没有表。

这很奇怪,有人能告诉我这是什么吗?

【问题讨论】:

您确定缺少这些表格吗?某些版本的 phpMyAdmin 对表格概览进行分页,并且不会在一页显示所有表格 是的,表丢失了,我得到了这个metalhouse.devpassion.eu,当我查看 mysql 时,再次只导入了 255 个表.. 它还提到了这个错误:The PDO extension is required for this adapter but the extension is not loaded。通常我设法通过以下方式迁移 Magento 数据库;将其包含在事务中并在导入期间禁用外键检查(可以为 MySQL 转储设置这些选项)。大型数据库应该通过命令行导入,因为 PhpMyadmin 经常超时 多年后这仍然是一个问题。我发现 Magento 默认存储 180 天的访问者日志。这会导致日志表上的 sql 转储失败。 mysqldump: Error 2013: Lost connection to MySQL server during query when dump table mg_log_visitor at row: 535319 更改日志设置:[1] clearing-magneto-log-data [***.com/questions/3638361/clearing-magento-log-data] What for cron 运行,然后转储一个 new.sql 文件。 【参考方案1】:

在我的 phpMyAdmin 版本中,导入页面上有一个带有以下文本的复选框:

在脚本检测到接近 PHP 超时限制时允许中断导入。 (这可能是导入大文件的好方法,但它会破坏事务。)

确保未选中该复选框(默认情况下已选中),否则可能会导致您的问题。

【讨论】:

【参考方案2】:

因此,我们在导出时打开了 phpMyAdmin 上的“包含在事务中”和“禁用外键”检查字段,并在两个 .sql 文件中单独导出。有效。

请注意,问题不是标准 php 超时或标准 phpMyadmin 对上传大文件的限制,因为我们之前也尝试过 bigdumb 和 ssh 命令进行导入,但没有成功。

【讨论】:

【参考方案3】:

正如@Willem 所说,您可以在导入 sql 文件时选中该选项。

但是如果取消选中该选项后仍然无法导入,则表示您要导入的文件太大。 在这种情况下,您可以使用mysql 命令行实用程序,如果您可以通过 SSH 访问您的服务器,或者您可以尝试 bigdump,这是一个 php 脚本,可让您导入拆分 SQL 查询的数据库分块!

希望对你有帮助:)

【讨论】:

试过这个,不行。还尝试使用 BigDump sw,它只是不会导入整个 sql。我在导出时尝试了很多选项,尝试将其导出为 tar gz,但不起作用.. :( 文件有多大??另外,您是否尝试在可以控制 max_upload_size 和 max_post_size 的本地环境中导入它?这样就可以排除文件维度有问题的根源... 我们将导出文件分成两个 .sql 文件,然后上传。有效。导出时,我们在 phpMyAdmin 上打开了“包含在事务中”和“禁用外键”复选框。 很高兴你已经解决了!请接受您自己的答案,以说明这个问题是如何解决的......干杯:)

以上是关于SQL 导入缺失的表的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server 导入还有一个数据库中的表数据

如何将db表导入sql 2000

当表在不同的架构中时,如何从 SQL Server 导入所有带有 sqoop 的表?

怎么往mysql数据库的表中批量导入数据

Oracle,导出的表不全,以及数据库导入报错

sql server 创建视图添加表时出现从其他数据库导入的表未显示出来