【问题标题】:DBIx::Class::Schema::Loader connect to db on different machineDBIx::Class::Schema::Loader 连接到不同机器上的数据库
【发布时间】:2013-01-10 01:19:25
【问题描述】:

我正在通过命令行使用DBIx::Class:Schema::Loader 从我的数据库中为我的 Catalyst 应用程序的 DBIx::Class 生成架构。这是我使用的命令:

script/myapp_create.pl model DB DBIC::Schema myapp::Schema create=static \
components=TimeStamp,PassphraseColumn dbi:mysql:mydb 'root' '' '{ AutoCommit => 1 }'

但是,此命令现在不起作用,因为我的数据库位于单独的计算机上。我如何告诉它连接到什么IP?谢谢!

【问题讨论】:

    标签: perl schema catalyst dbix-class


    【解决方案1】:

    我最终弄清楚了该怎么做。似乎如果您在最后一个散列之后传入另一个散列,则该散列将用于您的连接信息。所以只需将其添加到末尾:

    '{host=>"ip_here"}'
    

    解决了这个问题。这是完整的命令:

    script/myapp_create.pl model DB DBIC::Schema myapp::Schema create=static \
    components=TimeStamp,PassphraseColumn dbi:mysql:mydb 'root' ''           \
    '{ AutoCommit => 1 }' '{host=>"ip_here"}'
    

    【讨论】:

      【解决方案2】:

      dbi:mysql:... 参数是一个普通的 DBI 连接字符串。在第一个之后:是数据库驱动程序(DBD),在第二个之后是 DBD 特定参数。阅读 DBD::mysql 文档,了解如何在远程机器上指定数据库。

      【讨论】:

        猜你喜欢
        • 2011-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 2023-03-18
        相关资源
        最近更新 更多