Как создать и восстановить дамп базы данных MySQL с помощью Chef?

Как создать и восстановить дамп базы данных MySQL с помощью Chef?

Среда

Цель

Я пытаюсь скопировать/клонировать свой рабочий сервер Wordpress.

Мне бы хотелось иметь возможность создать дамп удаленной базы данных.

mysqldump --databases my_database > dump.sql

и восстановить

mysql -u my_user -p -D my_database < dump.sql

Я пробовал это, но безуспешно:

mysql_anybots_connection_info = {
  :host     => 'localhost',
  :username => 'my_user',
  :password => "my_password"
}

mysql_database "my_database" do
   connection mysql_connection_info
   sql "source /path/dump.sql;"
end

и это

mysql_database "my_database" do
  connection mysql_connection_info
  sql { ::File.open("/pul/dump.sql").read }
  action :query
end

Что сработало еще хуже?

Какие-либо предложения?

решение1

Некоторое время я был этим расстроен, но в конце концов нашел решение.

В моей ситуации проблема была в "DELIMITER", который является командой, используемой только клиентом командной строки mysql. Это не часть API, который использует mysql gem.

ИСТОЧНИК:https://github.com/opscode-cookbooks/database/issues/75

Для восстановления из дампа я использую эту функцию в рецепте:

execute 'restore-databases' do
  command "mysql -u root -p#{node['mysql']['server_root_password']} -D databaseName < /path/to_dump.sql"
end

Связанный контент