【问题标题】:LOAD DATA INFILE not working inside BASH SCRIPTLOAD DATA INFILE 在 BASH SCRIPT 中不起作用
【发布时间】:2013-05-13 06:03:55
【问题描述】:

我是 ssh 新手,尝试使用 bash 脚本使用 LOAD DATA INFILE 语法通过 bash 脚本加载 csv 文件

这是我的脚本:

mysql -u $MYSQL_USERNAME -p$MYSQL_PASSWORD -D $MYSQL_DATABASE \
  load data local infile '$FILE_TR_HI' into table trans_hist_test \
  fields terminated by ',' lines terminated by '\r\n';

此脚本单独运行良好。我的意思是在剧本之外。 但是当我将它包含在脚本中时,它会引发错误

找不到加载命令

我该如何解决这个问题?

【问题讨论】:

    标签: mysql csv ssh load


    【解决方案1】:

    尽量提供mysql的完整路径

    /usr/local/mysql/bin/mysql -u ...
    

    【讨论】:

    • 不,它没有用。在我的情况下,我给出了路径,路径是 /usr/share/MySQL -u .. 但它再次向我抛出错误“/usr/share/MySQL”是一个目录并且“load:command not found”
    • @user2376510 你应该找到mysql可执行文件路径,“/usr/share/MySQL”这个指向一个目录,所以看看它是否包含一个“bin”目录和mysql可执行文件
    【解决方案2】:

    你可以通过 -e 使用 mysql 的 --execute 选项。


    mysql -u $MYSQL_USERNAME -p$MYSQL_PASSWORD -D $MYSQL_DATABASE -e "load data local infile '$FILE_TR_HI' into table trans_hist_test fields terminated by ',' lines terminated by '\r\n'"
    

    【讨论】:

    • 没用!!我收到此错误 mysql Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1 版权所有 (c) 2000, 2013, Oracle 和/或其附属公司。版权所有。 Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。用法:mysql [OPTIONS] [database] -?, --help 显示此帮助并退出。 -I, --help - 的同义词? --auto-rehash 启用自动重新散列。不需要使用“rehash”来完成表格和字段,
    • 它对我有用,它应该可以工作。你能检查一下你是否有“加载数据”的权限吗?
    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 2018-03-04
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2013-08-24
    相关资源
    最近更新 更多