我正在尝试使用数组创建数据库。我正在定义数据库数组。然后从数组项创建数据库。
这是我在 mysql 中创建数据库的 Chef Recipe 。
array- database=["testy1","testy2"]
script 'set Create database ' do
interpreter 'bash'
user 'root'
cwd '/tmp'
code <<-EOH
mysql -uroot -p\'#{pw}\' -Be\ "CREATE DATABASE #{database}"
EOH
not_if "mysql -u root -p\'#{pw}\' -Be\ 'SHOW DATABASES' | grep #{database};"
end
STDERR: mysql: [警告] 在命令行界面上使用密码可能不安全。 ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“[testy1, testy2]”附近使用的正确语法 ---- “bash”“/tmp/chef-script20190402-6843-gm0k0u”的结束输出 ---- 跑“bash”“/tmp/chef-script20190402-6843-gm0k0u”返回1 预期结果将是创建 testy1 和 test2 数据库。
最佳答案
虽然database cookbook已弃用,您可以尝试一下,看看是否可以解决您的痛苦。 Chef 文档有一个关于 create a web app cookbook 的教程使用数据库 Recipe 。
关于您的问题,您应该创建 mysql client configuration (my.cnf
) ,这将允许您运行 mysql
命令,而无需指定登录凭据(用户名和密码)。
关于mysql - Chef创建数据库数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55481363/