mysql - Chef创建数据库数组

标签 mysql ruby bash chef-infra

我正在尝试使用数组创建数据库。我正在定义数据库数组。然后从数组项创建数据库。

这是我在 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/

相关文章:

Python 和 MySQL 更新

ruby-on-rails - 社交图标的 DRY 代码

ruby-on-rails - Apache Tomcat 和 ruby

arrays - 与数组并行馈送 GNU?

bash - 可以在 iex 之外使用内省(introspection)功能吗?

bash - -bash : syntax error near unexpected token `(' while git checkout

mysql其中字符串以数字结尾

php - Mysql数据库没有更新

mysql - Prestashop - MySql 更新查询脚本不工作

ruby - 我需要帮助来理解 : Write a method, sum,它接受一个数字数组并返回数字的总和