0

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

4

1 回答 1

3

您只需要从主机设置对在来宾机器(vagrant box)上运行的 mysql 服务器的访问权限,然后在您的 codeception.yml 配置中设置适当的数据库 DNS。

以下是一些一般说明:

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

2) 授予 mysql 用户适当的权限,该用户将用于从主机连接到数据库。您可以使用 mysql 客户端运行以下 SQL 命令来执行此操作

USE mysql;  
GRANT ALL ON *.* to root@'192.168.0.1' IDENTIFIED BY 'mypass';  
FLUSH PRIVILEGES;

其中rootmypass - 您的数据库用户,将用于从 codeception 连接到数据库及其密码和192.168.0.1 - 主机的 IP(在此处阅读如何获取主机的 IP )

3)重启vagrant的mysql服务器

4) 测试从主机运行到 vagrant 的 mysql 的连接

mysql -h 192.168.33.10 -P 3306  -u root -p

(这里192.168.33.10 - 我正在运行的 vagrant box 的 ip)

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

modules:
    config:
        Db:
            dsn: 'mysql:host=192.168.33.10;dbname=MyDB'
            user: 'root'
            password: 'mypass'
于 2014-03-29T17:23:04.380 回答