我使用bento/centos6.7
配置程序配置了一个Vagrant chef_solo
框。我使用berkshelf-plugin
作为食谱依赖。
我的项目文件夹如下所示:
|── Vagrantfile
|── cookbooks
└── my_cookbook
|── Berksfile
|── metadata.rb
...
在我的Vagrantfile
内(这是bento/centos6.7
的默认设置加上以下配置)
config.berkshelf.enabled = true
config.berkshelf.berksfile_path = "cookbooks/my_cookbook/Berksfile"
config.vm.provision "chef_solo" do |chef|
chef.add_recipe "my_cookbook"
end
在我的metadata.rb
depends 'mysql2_chef_gem', '~> 1.1'
depends 'database', '~> 5.1'
当我配置我的流浪汉机器时,我收到以下错误:
Error executing action `create` on resource 'mysql_database[my_database]'
Mysql2::Error
-------------
Lost connection to MySQL server at 'reading initial communication packet', system error: 110
PS:它在bento/centos7.2
编辑:这是数据库创建部分:
# Install the MySQL client
mysql_client 'default' do
action :create
end
# Configure the MySQL service
mysql_service 'default' do
initial_root_password node['webserver']['database']['root_password']
action [:create, :start]
end
# Install the mysql2 Ruby gem
mysql2_chef_gem 'default' do
action :install
end
mysql_database node['webserver']['database']['db_name'] do
connection(
:host => node['webserver']['database']['host'],
:username => node['webserver']['database']['root_username'],
:password => node['webserver']['database']['root_password']
)
action :create
end
编辑2:它在bento/centos7.2
上无法正常工作。它并没有崩溃,但是MySQL似乎已经死了并且正在运行sudo systemctl start mysqld
。
答案 0 :(得分:0)
我过度建议我使用了很多新东西(我也是Chef的新手)所以我认为这个问题来自不同的来源(流浪汉,糟糕的bersfile集成,还有别的东西)。 / p>
原来我没有read the docs明确指出:
登录到机器并输入没有额外参数的mysql将失败。您需要通过mysql -S /var/run/mysql-foo/mysqld.sock显式连接套接字,或使用mysql -h 127.0.0.1通过网络显式连接