Chef infra chef数据库cookbook在原始sql上失败

Chef infra chef数据库cookbook在原始sql上失败,chef-infra,Chef Infra,我正在尝试执行一个原始sql来创建一个没有多少授权的用户,但是我得到了一个未定义的方法错误。我正在使用数据库chef cookbook的v4.0.9 mysql_database[create random grants] action query ================================================================================ Error executing action `query

我正在尝试执行一个原始sql来创建一个没有多少授权的用户,但是我得到了一个未定义的方法错误。我正在使用数据库chef cookbook的v4.0.9

mysql_database[create random grants] action query

       ================================================================================
       Error executing action `query` on resource 'mysql_database[create datadog grants]'
       ================================================================================

       NoMethodError
       -------------
       undefined method `close' for nil:NilClass

       Cookbook Trace:
       ---------------
       /tmp/kitchen/cache/cookbooks/database/libraries/provider_database_mysql.rb:153:in `close_query_client'

       Resource Declaration:
       ---------------------
       # In /tmp/kitchen/cache/cookbooks/xxxx/recipes/xxxxxx.rb

       156: mysql_database 'create random grants' do
       157:   connection mysql_connection_info
       158:   sql "GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'dummy';"
       159:   #sql 'SELECT 1'
       160:   action :query
       161: end
       162:
如果您使用,那么它早就被弃用了——它的开发在2年前就停止了,它的存储库也被存档了

以下是弃用消息:

这本食谱已被弃用。最初的目的是将数据库实现细节从最终用户那里抽象出来。事后看来,这是一个错误,因为很难/不可能为在所有系统中运行的数据库创建通用接口。相反,我们计划将各个提供者转移到各自的烹饪书(mysql、postgresql、sqlite、sql_server)中,在那里他们可以充分利用底层数据库系统的功能集


我建议你远离这本食谱。

我也处于同样的地位,我正在使用这本不推荐使用的食谱。为了运行该资源,您需要使用特定的烹饪书版本-
取决于“数据库”、“4.0.8”

因此,如果您将其添加到您的
metadata.rb
中,您上面的代码将起作用

这是我这边的代码:

mysql\u数据库“创建从用户”做什么
连接mysql\u连接\u信息
sql“将*.*上的复制从机授予由“#{SLAVE_password_data_bag_item['password']}”标识的'SLAVE_user'@'””
操作:查询
结束

谢谢,是的,我知道这本食谱不推荐使用。这是技术债务。决定最终为MySQL操作编写我们自己的定制厨师资源。@JeetendraPujari:如果我回答了你的问题,请将其标记为已解决:)