我正在尝试在 vagrant 中安装 mysql 配方。我用this Recipe 。
MySql 服务在 vagrant up
之后启动,但重新启动后我无法执行 vagrant provision
或 vagrant up
,因为服务器失败开始。
我已经意识到,Vagrant 会删除 /var/run
目录;它创建 mysqld 目录(用于套接字),但不创建 mysql(用于 pid 文件)。 MySql找不到目录,无法创建pid文件。
我怎样才能让它发挥作用?为什么 Vagrant 创建 mysqld,而不创建 mysql?
我还尝试了不同的盒子(precise32、cloud daily precision64)。
盒子:http://files.vagrantup.com/precise32.box Vagrant 文件:
Vagrant.configure("2") do |config| config.vm.box = "precise32" config.omnibus.chef_version = :latest config.vm.box_url = "http://files.vagrantup.com/precise32.box" config.vm.network :forwarded_port, guest: 8000, host: 8080 config.vm.provider :virtualbox do |vb| vb.gui = true end config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "./chef-repo/cookbooks" chef.add_recipe "apt" chef.add_recipe "mysql::server" chef.json = { "mysql" => { "server_root_password" => "password", "server_repl_password" => "password", "server_debian_password" => "password" } } end end
最佳答案
问题出在 MySql Recipe 中:不知何故/var/run/mysqld 没有被删除,所以解决方法是:更改 <mysql_cookbook>/libraries/provider_mysql_service_ubuntu.rb
pid_file = '/var/run/mysql/mysql.pid'
至
pid_file = '/var/run/mysqld/mysqld.pid'
我也在github上提出了一个问题,所以将来这个bug可以在master中修复
关于mysql - Chef MySql Recipe : MySql does not start after reboot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818096/