MySQL批量插入CSV数据文件

mor*_*ous 4 mysql csv shell

我有一些我要导入mySQL的CSV数据文件.我想在shell脚本中进行插入,以便它可以自动化.但是,我有点厌倦了在脚本中以明文形式提供用户名和密码

我有以下问题:

  1. 我对脚本中明文中的uname/pwd的想法感到不舒服(无论如何围绕这个,或者我是否太偏执了)?也许我可以设置一个只有INSERT privelege的用户来插入表格?

  2. 数据库表(导入原始数据)具有基于表列的唯一键.我尝试导入的数据中也可能存在重复项.而不是mySQL barfing(即整个插入失败),我想要能够告诉mySQL到EITHER

(a)使用新数据更新行 (b)忽略重复行.

无论我选择哪种设置都是针对整个导入而不是逐行导入.是否有任何标志等我可以传递给mysql,以使其表现得像上面的(a)或(b)

  1. 任何人都可以提出如何编写这样一个(bourne)shell脚本的起点吗?

Bil*_*win 7

您应该阅读mysqlimport,它是MySQL提供的命令行工具.此工具是批量加载CSV数据的最快方法.

该工具有两个选项,--replace--ignore处理重复键冲突.

关于安全性并避免在脚本中以明文形式放置密码,您还可以使用MYSQL_PWD环境变量或.my.cnf文件(确保文件是模式400或600).请参阅密码安全的最终用户指南.

  • 大声笑!跳汰机!哦,好吧,我想这可以追溯到我完全履行皇室职责的时间表. (2认同)