S'il s'agit d'une erreur de chemin de fichier et que vous utilisez chef solo, essayez d'utiliser le chemin spécifié dans solo.rb , comme :
/tmp/chef-solo/site-cookbooks/path_to_file.sql
En règle générale, envisagez d'utiliser le livre de recettes de base de données pour les tâches de gestion des utilisateurs et des bases de données mysql. Une fois que vous avez configuré les dépendances de livre de cuisine nécessaires, vous pouvez mettre un code comme celui-ci dans le default.rb de votre recette principale. :
# externalize conection info in a ruby hash
mysql_connection_info = {
:host => "localhost",
:username => 'root',
:password => node['mysql']['server_root_password']
}
# drop if exists, then create a mysql database named DB_NAME
mysql_database 'DB_NAME' do
connection mysql_connection_info
action [:drop, :create]
end
# query a database from a sql script on disk
mysql_database "DB_NAME" do
connection mysql_connection_info
sql { ::File.open("/tmp/chef-solo/site-cookbooks/main/path/to/sql_script.sql").read }
action :query
end
#or import from a dump file
mysql_database "DB_NAME" do
connection mysql_connection_info
sql "source /tmp/chef-solo/site-cookbooks/main/path/to/sql_dump.sql;"
end
Je n'ai pas testé ce dernier car le stockage d'un fichier de base de données dans le répertoire chef ralentit vraiment les choses.
Voir aussi :Importer un fichier SQL dans mysql