【问题标题】:How do I setup mysql sandbox for Test::DBIX::Class?如何为 Test::DBIX::Class 设置 mysql 沙箱?
【发布时间】:2017-06-19 12:12:53
【问题描述】:

我正在尝试使用 MySQL::Sandbox 设置 Test::DBIX::Class。但看起来我的设置不正确,因为警告消息:

Test-DBIx-Class-0.52$ mysql_install_db=$HOME/opt/sandbox/mysql/5.5.54/bin/mysqld BASE_DIR=/tmp/sandboxes/msb_5_5_54 prove -l t/08-test-mysqld.t 
t/08-test-mysqld.t .. mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied)
t/08-test-mysqld.t .. ok   
All tests successful.
Files=1, Tests=7, 28 wallclock secs ( 0.02 usr  0.00 sys +  1.05 cusr  0.57 csys =  1.64 CPU)
Result: PASS

/var/lib/mysql/ 不是我的 mysql 沙箱设置的一部分。警告信息的原因是什么?

我使用08-test-mysqld.t 进行测试。

我的 mysql sanbox 设置:

$all_info = {
              '5554' => {
                          'opt' => {
                                     'datadir' => $HOME.'/sandboxes/msb_5_5_54/data',
                                     'log_error' => 'msandbox.err',
                                     'socket' => '/tmp/mysql_sandbox5554.sock',
                                     'prompt' => '\'mysql [\\h] {\\u} (\\d) > \'',
                                     'bind_address' => '127.0.0.1',
                                     'tmpdir' => $HOME.'/sandboxes/msb_5_5_54/tmp',
                                     'user' => 'me',
                                     'lower_case_table_names' => '0',
                                     'basedir' => $HOME.'/opt/sandbox/mysql/5.5.54',
                                     'port' => '5554',
                                     'pid_file' => $HOME.'/sandboxes/msb_5_5_54/data/mysql_sandbox5554.pid',
                                     'password' => 'msandbox'
                                   },
                          'conf' => undef
                        }
            };

【问题讨论】:

  • 能否请您显示08-test-mysqld.t中的代码?这个怎么用?
  • 哦。您正在尝试安装 Test::DBIx::Class?
  • 没有安装 Test::DBIX::Class 并且可以在 sqlite 上正常工作。我正在尝试切换到 mysql

标签: mysql perl dbix-class


【解决方案1】:

警告消息在Test::mysqld::_use_mysqld_initialize 中生成,可以忽略。设置MYSQL_INSTALL_DB 后,它工作正常:

这是我当前的测试设置:

export SB_DIR=$HOME/opt/sandbox/mysql/5.5.54
Test-DBIx-Class-0.52$ MYSQLD=$SB_DIR/bin/mysqld \
MYSQL_INSTALL_DB=$SB_DIR/scripts/mysql_install_db \
KEEP_DB=1 \
prove -lv t/08-test-mysqld.t

KEEP_DB 有助于诊断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2010-12-18
    相关资源
    最近更新 更多