0

私は Vagrant と Codception を使用していますが、アプリケーションのローカル性をテストしたい場合は、LAMP (またはそのようなもの) サーバーで実行する必要があります。Vagrant でデータベースを使用するにはどうすればよいですか?

4

1 に答える 1

3

必要なのは、ホストからゲスト マシン (vagrant ボックス) で実行される mysql サーバーへのアクセスをセットアップし、codeception.yml 構成で適切なデータベース DNS を設定することだけです。

一般的な手順は次のとおりです。

1) vagrant の mysql サーバーがボックスへのすべてのインターフェイス ssh をリッスンできるようにするには、mysql の my.cnf 構成で「bind-address」オプションを設定し、その値を 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 - codeceptionからデータベースに接続するために使用されるデータベース ユーザーとそのパスワード、および192.168.0.1 - ホストの IP (Gest のホストの IP を取得する方法については、こちらを参照してください)

3) vagrant の mysql サーバーを再起動します。

4) ホスト実行から vagrant の mysql への接続をテストするには

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

(ここでは192.168.33.10 - 実行中の vagrant ボックスの 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 に答える