我使用 Vagrant 和 Codception,但是当我想在本地测试应用程序时,我必须在 LAMP(或类似的)服务器上进行。我如何在 Vagrant 上使用数据库?
问问题
1110 次
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;
其中root和mypass - 您的数据库用户,将用于从 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 回答