phpMyAdmin 不允许我一次运行多个查询,并且导入我的 SQL 失败
Posted
技术标签:
【中文标题】phpMyAdmin 不允许我一次运行多个查询,并且导入我的 SQL 失败【英文标题】:phpMyAdmin doesn't let me run more than one query at a time, and importing my SQL fails 【发布时间】:2016-02-13 10:27:23 【问题描述】:我有两个要导入的大型 SQL 文件。我通过解析旧 mysql 数据库的 CSV 导出中的数据来生成这些 SQL 文件。如果我尝试将这些导入到新的 MySQL 数据库中,则需要几分钟并最终说它通过了。但是当我查看表格时,INSERT 语句都没有对表格做任何事情。
如果我在 phpMyAdmin SQL 窗口中一一运行我的 SQL 文件中的语句,它们就会成功地将记录插入到表中。所以我尝试将整个 SQL 文件复制并粘贴到窗口中。这需要一段时间,但最终我得到一个错误代码:500。
我应该如何解决这个问题?连接到数据库非常愚蠢和令人沮丧,因为我不知道在哪里可以找到有关数据库的所有信息,而且到目前为止我找到的所有资源都告诉我如何连接到本地数据库而不是本地数据库托管在别处。我只想导入这些 SQL 文件并完成它。我只是想在两个表中插入一堆东西。下面是一个 SQL 示例:
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('base_fee_paid', 0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('featured_paid', 0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('private_bids_paid', 0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('do_not_require_shipping', 0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('featured', 1)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('allow-offers', 0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('Location', 'California')
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('quant', 1)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('buy_now', 130.0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('reserve', 0)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('private_bids', 'no')
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('only_buy_now', 1)
INSERT INTO b1b_postmeta (meta_key, meta_value)
VALUES ('auto_renew_item', 0)
来自其中一个 SQL 文件。另一个 SQL 文件类似,但将一些不同的数据插入到不同的表中。如果我在 phpMyAdmin SQL 窗口中逐一运行 INSERT 语句,它们被插入没有问题。但是如果我尝试导入整个文件......它说它是成功的,但是当我查看表格时,我看不到更改。感谢您的任何建议。
注意:我刚才分享的 SQL 块只是一个块。对于每个产品,我们都有一个这样的块。在该块之后是一个空格,然后是另一个块。我包含了空格,以便在查看 SQL 文件时更容易区分不同的产品。较大的 SQL 文件大约有 100,000 行。另一个是大约 20,000 行。
【问题讨论】:
Phpmyadmin 不太适合导入大文件,因为它的执行时间受到 php 配置的限制 - 因此错误代码 500。您可以访问服务器上 mysql 的命令行客户端吗? 我目前没有访问权限,但我可以申请。将我的文件分成 10,000 行的块是更好的策略吗? 是的,这也是一个选项。但是,如果您必须导入包含 100 万条此类语句的文件,会发生什么? 您是否尝试过像INSERT INTO b1b_postmeta (meta_key, meta_value) VALUES ('only_buy_now', 1); INSERT INTO b1b_postmeta (meta_key, meta_value) VALUES ('auto_renew_item', 0);
这样的;分隔命令?
@Shadow 愿宇宙怜悯我的灵魂。如果我绝对必须导入这样的文件,我希望他们将数据库托管在某种不同的环境中。这个 phpMyAdmin 问题肯定不是普遍的吗?
【参考方案1】:
;
的单独命令如:
INSERT INTO b1b_postmeta (meta_key, meta_value) VALUES ('only_buy_now', 1);
INSERT INTO b1b_postmeta (meta_key, meta_value) VALUES ('auto_renew_item', 0);
正如我在评论phpMyAdmin doesn't let me run more than one query at a time, and importing my SQL fails中所说的
【讨论】:
以上是关于phpMyAdmin 不允许我一次运行多个查询,并且导入我的 SQL 失败的主要内容,如果未能解决你的问题,请参考以下文章
PDO 查询不起作用,但生成的 SQL 在 PHPMyAdmin 上运行