我有很多大文本文件,我希望将它们保存在数据库中。我写了一个可以保护少量数据的shell脚本,但是当我尝试使用一些大文件时,却出现以下错误:
mysql: Argument list too long
列内容的类型为longtext。
test.txt中包含60个单词,内容安全。 如果我使用austen-emma.txt(具有158167个单词)尝试相同的操作,则会得到描述的错误。
#!/bin/sh
content=`cat /srv/data/english_gutenberg_corpus/test.txt`
db_value=`mysql -u admin -padmin --database=bp12 -e "INSERT INTO db_connector_text (author, date, genre, content, title, language, source, wordlength) VALUES ('lel', '1970-01-16', 'NULL', '$content', 'Lyrische elemente', 'German', 'kp', 20)"`
是否有解决此问题的方法?
答案 0 :(得分:1)
/bin/sh
在命令大小上有限制,也许只有5KB。切换到其他处理数据的方式。无论最终采用哪种数据库方法,都需要学习一种编程语言(Perl,Java,VB等)来进行工作。
如果您在MySQL中使用sh
函数,则可以坚持使用LOAD_FILE
,但是对于不平凡的事情,我不建议您使用它。
很多大文本文件
您将如何处理文件?在网页上显示它们?用某些程序操纵它们?提供超链接吗?分析他们的单词结构?其他吗?
我想保护我的数据库
请定义“安全”。 “安全”,如免受围观者保护?服务器崩溃后仍然存在“崩溃安全”状态? “不受更改保护”,例如文件权限?其他吗?
答案 1 :(得分:0)