【问题标题】:Start mysql with flag --local-infile using perl使用 perl 使用标志 --local-infile 启动 mysql
【发布时间】:2012-12-02 06:58:31
【问题描述】:

我正在编写一个简单的脚本来使用 perl 程序将文件列表上传到 mysql 中的表。 每当我需要上传文件时,我通常可以使用标志“--local-infile”手动启动 mysql。 我也使用 perl 来使用 DBI 获取 mysql 数据库中的表信息:

$dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);

但我不知道如何使用 perl 和上传文件所需的标志来启动 mysql。 有没有办法通过本地启用在 perl 中启动与 mysql 的连接? 或者可能, 是否有我可以在 mysql 中运行以启用上传文件的命令? 我应该补充一点,我在远程主机上运行,​​所以我没有对 my.cnf 文件的编辑权限 或 mysql 中的 root 访问权限。

【问题讨论】:

    标签: mysql perl upload


    【解决方案1】:

    是的,有:

    $dbh = DBI->connect("DBI:mysql:$db:$host;mysql_local_infile=1", $user, $pass);
    

    您也可以通过这种方式传递其他(局部)变量。见the documentation for DBD::mysql

    【讨论】:

      【解决方案2】:

      首先,在my.cnf的client下添加如下代码

      [客户]

      loose-local-infile=1

      然后添加参数;

      mysql_local_infile=>1
      

      下面,

      $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass, {mysql_local_infile=>1, RaiseError => 0, PrintError => 0, mysql_enable_utf8 => 1});
      

      其他参数属于我的代码,但我将它们用于DBI->connect的使用示例。

      【讨论】:

        猜你喜欢
        • 2012-06-01
        • 2020-07-25
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多