csv导入适用于小测试文件,不适用于实际文件,无错误,mysql

csv导入适用于小测试文件,不适用于实际文件,无错误,mysql,mysql,csv,upload,Mysql,Csv,Upload,我有一个大的ish.csv(300krows)称之为medium.csv,我正试图将它导入到MySQL表中。当我在medium.csv上执行导入命令时,我在mysql workbench中得到反馈“0行受影响”,并且没有警告,表也不受影响 在尝试排除故障时,我开始开发csv的迷你版,通过在excel中打开medium.csv,将前5行剪切并粘贴到新文件tiny.csv中创建。这很好: DROP TABLE IF EXISTS USER_DATA; CREATE TABLE USER_DATA (

我有一个大的ish.csv(300krows)称之为medium.csv,我正试图将它导入到MySQL表中。当我在medium.csv上执行导入命令时,我在mysql workbench中得到反馈“0行受影响”,并且没有警告,表也不受影响

在尝试排除故障时,我开始开发csv的迷你版,通过在excel中打开medium.csv,将前5行剪切并粘贴到新文件tiny.csv中创建。这很好:

DROP TABLE IF EXISTS USER_DATA;
CREATE TABLE USER_DATA (UID INT, INSTALL_DATE DATE, PLATFORM_TYPE VARCHAR(10), COUNTRY_TYPE VARCHAR(11));

LOAD DATA LOCAL INFILE 'E:\\Heather Data\\H Docs\\test\\tiny.csv'
into table USER_DATA
fields terminated by ',' enclosed by '"'
lines terminated by '\r\n'
ignore 1 lines
(uid,
@install_date,
platform_type,
country_type)
set 
install_date = str_to_date(@install_date, '%d/%m/%Y');
当我在medium.csv(位于同一个文件夹中)上运行此命令时,处理时间已用完,但什么也没有发生,Ig et没有警告,目标表也不受影响

你能给我一些关于如何排除故障的提示吗?我真的很困惑,为什么小文件可以工作而中等文件不能

列数据类型或medium.csv文件格式中的错误是否会导致此行为

如果我不能排除此方法的故障,是否有其他导入方法可以使用

谢谢你的建议


Heather

运行以下命令查看系统上活动的超时时间是一个好主意

SELECT @@global.wait_timeout, 
@@global.interactive_timeout, 
@@session.wait_timeout, 
@@session.interactive_timeout;
如果它们设置得太低,比如60秒,那么在这段时间之后,mysql会认为操作花费的时间太长,并终止它。因此,如果你在中间的一个更新或加载语句,它本身是一个事务,它将失败,并且不会发生任何事情(因为它是一个事务)。 在像GoDaddy这样的托管环境中,您可以选择缩小任何一个批的大小,因为您无法更改服务器配置

在以root用户身份控制的系统上,可以对服务器环境进行更改,以增加mysql允许长时间运行的查询完成的时间

选择权

A.全局级别表示所有新连接都继承超时值 可以对/etc/my.cnf进行更改

wait_timeout = 600
interactive_timeout = 600
这些是10分钟的值,只有在mysql重新启动后才会生效

无需重新启动即可执行该编辑,但通过执行以下操作,该编辑将生效:

mysql -uroot -p -e"SET GLOBAL wait_timeout=600; SET GLOBAL interactive_timeout=600;"

B.连接级别断开连接后消失的调整。通常适用于进行更改和取消更改,包装时间较长的例行程序

设置@@wait\u timeout=1000--对会话等待\u超时的更改


在连接结束时,如果修改会话等待超时,则会被忘记,并且在重新连接时,值会默认返回全局。

medium.csv是否在60秒后发出嘎嘎声?因为问题未知,所以您可以尝试一些不同的方法来解决此问题。1) 将会话中的wait_timeout变量更改为一些高编号。如果设置为低编号。2) 也可以像sqlyog一样从gui进行检查,这可能会给您一些线索。3) 在增加max_allowed_数据包变量大小后,也可以进行检查。我通过放宽介质输入文件的一些规范,使其正常工作,我删除了随附的by并终止于。呼。因此,也许有一个格式问题正在通过将tiny.csv往返于excel中来解决。或者文件中稍后会出现格式问题。在我使用过的其他环境中,总是有一种安全的方式,可以悄悄地访问具有不可靠结构的文件内容,例如,读取字符串,然后进行转换。不确定这在MySQL上下文中通常是如何处理的?通过在其他环境中进行预处理?非常有用,我将对此进行检查。可能是relax允许它在时间界限内运行的格式!毕竟,这并不是固定的格式。我在windows环境中运行(是的,我知道!;-),并通过mysql工作台进行交互。不知道如何通过它更改配置-将尝试找出它。德克萨斯州!p、 你说3600中的10分钟值是什么意思?3600相当于旧币(即更多标准时间符号)。注意:如果证明是问题的话,我会接受升级。有时候默认值是28800=24小时是的,我使用的是28800默认值atm,所以时间充裕。因此,我再次怀疑格式问题。为了让自己感觉舒服,我可能应该对文件进行预处理,因为这样我就知道发生了什么……我怀疑我的胡言乱语与此无关。把它放在你的架子上,准备另一个系统!