我有一些我要导入mySQL的CSV数据文件。我想在shell脚本中进行插入,以便它可以自动化。但是,我有点厌倦了在脚本中以明文形式提供用户名和密码
我有以下问题:
我对脚本中明文中的uname / pwd的想法感到不舒服(无论如何都在这周围,或者我是否太偏执了)?也许我可以设置一个只有INSERT privelege的用户来插入表格?
数据库表(导入原始数据)具有基于表列的唯一键。我尝试导入的数据中也可能存在重复项。我宁愿想告诉mySQL EITHER 醇>
(a)使用新数据 OR 更新行 (b)IGNORE重复行。
我选择的设置是整个导入,而不是逐行导入。是否有任何标志等我可以传递给mysql,以使其表现得像(a)上面的OR(b)
答案 0 :(得分:7)
您应该阅读mysqlimport,这是MySQL提供的命令行工具。此工具是批量加载CSV数据的最快方法。
该工具有两个options,--replace
和--ignore
来处理重复的密钥冲突。
关于安全性并避免将密码以纯文本形式放入脚本中,您还可以使用MYSQL_PWD
环境变量或.my.cnf
文件(确保文件为模式400或600)。请参阅End-User Guidelines for Password Security。