環境
- Ubuntu 12.04 プレサイス64
- エンタープライズシェフ
- opscode-クックブック/mysql
- opscode-cookbooks/データベース
- ワードプレス 3.9
客観的
本番環境の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 コマンドライン クライアントでのみ使用されるコマンドです。これは、mysql gem が使用する API の一部ではありません。
ソース: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