首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试: mysqld不会像预期的那样关闭mysqld

测试: mysqld不会像预期的那样关闭mysqld
EN

Stack Overflow用户
提问于 2012-06-22 19:53:04
回答 1查看 127关注 0票数 0

我有这样的剧本:

代码语言:javascript
复制
#!/var/home/cherry/opt/perl

use Test::More;
use DBI;
use Test::mysqld;
use Data::Dumper;

my $mysqld = Test::mysqld->new(
    base_dir => '/tmp/test_mysqls',
    my_cnf => {
        'skip-networking' => '', # no TCP socket
    }
) or plan skip_all => $Test::mysqld::errstr;

my $dbh = DBI->connect(
    $mysqld->dsn(dbname => 'test'),
);

warn Dumper($mysqld);

done_testing();

当我运行这个程序时,我得到的输出如下:

代码语言:javascript
复制
prove -lv t/test.t
t/test.t .. $VAR1 = bless( {
                 '_owner_pid' => 21854,
                 'base_dir' => '/tmp/test_mysqls',
                 'pid' => 21918,
                 'mysql_install_db' => '/usr/bin/mysql_install_db',
                 'auto_start' => 2,
                 'my_cnf' => {
                               'tmpdir' => '/tmp/test_mysqls/tmp',
                               'pid-file' => '/tmp/test_mysqls/tmp/mysqld.pid',
                               'skip-networking' => '',
                               'datadir' => '/tmp/test_mysqls/var',
                               'socket' => '/tmp/test_mysqls/tmp/mysql.sock'
                             },
                 'mysqld' => '/usr/sbin/mysqld'
               }, 'Test::mysqld' );

1..0

测试永远不会完成。脚本永远在换行符上等待,永远不会退出--当我执行ps aux时,即使在执行ctrl + c之后,我也可以看到mysqld实例在运行。我甚至不知道从哪里开始解决这个问题。有什么暗示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 21:00:54

尝试添加一个do {}并调用$ mysqld ->停止在eval {}中关闭mysqld。

代码语言:javascript
复制
my $mysqld = Test::mysqld->new(
    base_dir => '/tmp/test_mysqls',
    my_cnf => {
        'skip-networking' => '', # no TCP socket
    }
) or do {
    eval { $mysqld->stop };
    plan skip_all => $Test::mysqld::errstr;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11163177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档