【问题标题】:Chef MySql Cookbook: MySql does not start after rebootChef MySql Cookbook:MySql 重启后无法启动
【发布时间】:2014-05-14 03:04:57
【问题描述】:

我正在尝试在 vagrant 中安装 mysql 配方。为此,我使用 this 食谱。

MySql 服务在vagrant up 之后启动,但重启后我无法执行vagrant provisionvagrant up,因为服务器无法启动。

我意识到,Vagrant 擦除了/var/run 目录;它创建 mysqld 目录(用于套接字),但不创建 mysql(用于 pid 文件)。 MySql找不到目录,无法创建pid文件。

我怎样才能让它工作?为什么 Vagrant 创建 mysqld,而不创建 mysql?

我还尝试了不同的盒子(precise32,cloud dailyprecision64)。

邮箱:http://files.vagrantup.com/precise32.box 流浪文件:

Vagrant.configure("2") 做 |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,访客:8000,主机:8080 config.vm.provider :virtualbox 做 |vb| vb.gui = 真 结尾 config.vm.provision :chef_solo 做 |chef| chef.cookbooks_path = "./chef-repo/cookbooks" chef.add_recipe "apt" chef.add_recipe "mysql::server" 厨师.json = { “mysql” => { "server_root_password" => "密码", "server_repl_password" => "密码", "server_debian_password" => "密码" } } 结尾 结尾

【问题讨论】:

  • /var/run 是指向/run 的符号链接,tmpfs 是内存文件系统。它不会在重新启动后继续存在。我认为这与流浪者无关。简单地重新启动虚拟机,你会丢失其中的所有内容。
  • 没错。我改了标题。

标签: mysql ubuntu chef-infra vagrant


【解决方案1】:

问题出在 MySql 食谱中:不知何故 /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上提出了一个问题,所以将来可以在master中修复这个错误

【讨论】:

【解决方案2】:

eviltnan 是正确的。这是首次运行 ubuntu 12.04 的脚本解决方法。

ruby_block "ensure mysql server starts on reboot" do
  block do
    fe = Chef::Util::FileEdit.new("/etc/mysql/my.cnf")
    fe.search_file_replace_line(/pid-file/, 'pid-file                       = /var/run/mysqld/mysql.pid')
    Chef::Log.warn("Edited /etc/mysql/my.cnf to re-enable start on reboot.") if fe.write_file
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2012-03-25
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多