如何在Vagrant上使用数据库进行Codeception测试

时间:2014-03-18 13:48:15

标签: vagrant codeception

我使用Vagrant和Conception,但是当我想在本地测试应用程序时,我必须在LAMP(或类似的东西)服务器上进行。如何在Vagrant上使用数据库?

1 个答案:

答案 0 :(得分:3)

您只需要设置对来自主机的来宾计算机(流浪者盒)上运行的mysql服务器的访问权限,然后在codeception.yml config中设置相应的数据库DNS。

以下是一些一般性说明:

1)允许你的vagrant的mysql服务器通过在mysql的my.cnf配置中设置'bind-address'选项将所有接口ssh监听到你的盒子并将其值改为0.0.0.0

2)为mysql用户授予适当的权限,用于从主机连接数据库。 您可以使用mysql客户端

执行以下SQL命令
USE mysql;  
GRANT ALL ON *.* to root@'192.168.0.1' IDENTIFIED BY 'mypass';  
FLUSH PRIVILEGES;

其中 root mypass - 您的数据库用户将从代码中使用以连接到数据库及其密码和 192.168.0.1 - 主持人的IP(阅读如何获得主持人的手势here

3)重启vagrant的mysql服务器

4)从主机运行

测试与vagrant的mysql的连接
mysql -h 192.168.33.10 -P 3306  -u root -p

(此处 192.168.33.10 - 我正在运行的流浪者盒子的ip)

5)在codeception.yml文件中设置DNS,例如

modules:
    config:
        Db:
            dsn: 'mysql:host=192.168.33.10;dbname=MyDB'
            user: 'root'
            password: 'mypass'