【问题标题】:Chef create array of database厨师创建数据库数组
【发布时间】:2019-08-24 04:02:39
【问题描述】:

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

这是我在 mysql 中创建数据库的主厨食谱。

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: [警告] 在命令行界面上使用密码可能不安全。 第 1 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“[testy1,testy2]”附近使用正确的语法 ---- "bash" "/tmp/chef-script20190402-6843-gm0k0u" 的结束输出---- 跑“bash”“/tmp/chef-script20190402-6843-gm0k0u”返回1 预期的结果是创建 testy1 和 test2 数据库。

【问题讨论】:

  • 您可能需要遍历该数据库列表,而不是按原样使用它。
  • 谢谢,但我无法作为单个值进行迭代。
  • 提示:database.each do |db| 或类似的东西。

标签: mysql ruby bash chef-infra


【解决方案1】:

虽然database cookbook 已被弃用,但您可以尝试一下,看看它是否能解决您的痛点。 chef 文档有一个使用数据库说明书的 create a web app cookbook 教程。

关于您的问题,您应该创建mysql client configuration (my.cnf),这样您就可以在不指定登录凭据(用户名和密码)的情况下运行mysql 命令。

【讨论】:

    猜你喜欢
    • 2012-07-14
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多