2016-10-11 3 views
2

Ich versorge eine Vagrant bento/centos6.7 Box mit chef_solo Provisioner. Ich verwende berkshelf-plugin für die Abhängigkeiten des Kochbuchs.Fehler beim Erstellen einer Datenbank mit Chef mit Datenbankkochbuch

Mein Projektordner wie folgt aussieht:

|── Vagrantfile 
|── cookbooks 
    └── my_cookbook 
     |── Berksfile 
     |── metadata.rb 
... 

Inside my Vagrantfile (die für bento/centos6.7 der Standard ist und die folgende Konfiguration)

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 

In meinem metadata.rb

depends 'mysql2_chef_gem', '~> 1.1' 
depends 'database', '~> 5.1' 

Wenn ich meine vagabundierende Maschine versorge, bekomme ich der folgende Fehler:

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: es funktioniert perfekt auf bento/centos7.2

EDIT: Hier ist die Datenbankerstellung Teil:

# 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 

EDIT 2: Es spielt keine‘ t arbeiten wirklich auf bento/centos7.2. Es stürzt nicht ab, aber MySQL scheint tot und läuft sudo systemctl start mysqld hängt.

+0

Könnten Sie hier die Teil des Rezeptes einfügen, die die 'mysql_database' Ressource hat? – zuazo

+0

@zuazo Ich habe meine Frage mit dem Code aktualisiert. –

Antwort

0

Ich war über Suggestion durch die Tatsache, dass ich viele neue Dinge verwendet habe (ich bin auch neu zu Chef), also dachte ich, das Problem kam aus einer anderen Quelle (vagrant, schlechte berfile Integration, etwas anderes).

Stellt sich heraus, ich habe gerade nicht read the docs dem eindeutig hervorgeht:

Logging into the machine and typing mysql with no extra arguments will fail. You need to explicitly connect over the socket with mysql -S /var/run/mysql-foo/mysqld.sock, or over the network with mysql -h 127.0.0.1

Verwandte Themen