我有一个定制的虚拟机库,它预先安装了PHP、Apache2和MySQL。所以我可以用这个盒子来启动虚拟机,它不需要从厨师食谱中安装上面的任何东西。
然而,有一个厨师烹饪书,我试图安装,但它是失败的。我正在尝试安装的Cookbook运行一个PHP脚本,该脚本连接和使用MySQL db。
它失败的原因是PHP无法连接到mysql服务器。我认为这是因为在脚本试图连接时,MySQL还没有启动(或准备就绪)。只有当我启动VM时,它才会失败。当我提供它(流浪的供给),它起作用。因此,我认为,当PHP脚本试图连接时,MySQL还没有做好准备。
错误:
mysql_connect():无法通过套接字'/var/run/mysqld/mysqld.sock‘(2)连接到本地MySQL服务器。
厨师食谱中的代码:
execute "doInstall" do
cwd "/vagrant"
command "php path/to/my/script.php"
end有什么想法吗?
发布于 2013-03-19 17:27:01
也许你可以做一个
service "mysql" do
action :start, :immediately
end在你的菜谱开始的时候,或者简单地做一个启发。
execute "doInstall" do
cwd "/vagrant"
command "sleep 10; php path/to/my/script.php"
end这在我看来有点脏,但可能很快就能解决你的问题。
https://stackoverflow.com/questions/15506116
复制相似问题