Как установить пароль root MySQL в поваренной книге шеф-повара?

0

Я использую эту кулинарную книгу повара mysql. Предполагается, что кулинарная книга позволит вам установить пароль пользователя mysql. Он делает это через следующее

    def init_records_script
      # Note: shell-escaping passwords in a SQL file may cause corruption - eg
      # mysql will read \& as &, but \% as \%. Just escape bare-minimum \ and '
      sql_escaped_password = root_password.gsub('\\') { '\\\\' }.gsub("'") { '\\\'' }
      Chef::Log.info("passxyz" + sql_escaped_password)
      <<-EOS
        set -e
        rm -rf /tmp/#{mysql_name}
        mkdir /tmp/#{mysql_name}

        cat > /tmp/#{mysql_name}/my.sql <<-'EOSQL'
UPDATE mysql.user SET #{password_column_name}=PASSWORD('#{root_password}')#{password_expired} WHERE user = 'root';
DELETE FROM mysql.user WHERE USER LIKE '';
FLUSH PRIVILEGES;
DELETE FROM mysql.db WHERE db LIKE 'test%';
DROP DATABASE IF EXISTS test ;
EOSQL

       #{db_init}
       #{record_init}

       while [ ! -f #{pid_file} ] ; do sleep 1 ; done
       kill 'cat #{pid_file}'
       while [ -f #{pid_file} ] ; do sleep 1 ; done

       EOS
    end

А также

def record_init
      cmd = v56plus ? mysqld_bin : mysqld_safe_bin
      cmd << " --defaults-file=#{etc_dir}/my.cnf"
      cmd << " --init-file=/tmp/#{mysql_name}/my.sql"
      cmd << ' --explicit_defaults_for_timestamp' if v56plus
      cmd << ' &'
      return "scl enable #{scl_name} \"#{cmd}\"" if scl_package?
      cmd
    end

выше, похоже, пытается выполнить команду: /usr/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf --init-file=/tmp/mysql/my.sql & Я пробовал искать файл для проверки, но не смог найти его. Так что, похоже, это не работает. В конце концов, используя эту поваренную книгу, пароль пользователя mysql не будет установлен вообще. Есть ли очевидная ошибка выше? Как его отладить?

Теги:
chef
vagrant

1 ответ

0

Похоже, что ресурс chef resource bash принимающий init_records_script качестве входного параметра, нуждался в user "root" атрибуте. См. Этот PR: https://github.com/chef-cookbooks/mysql/pull/541

Ещё вопросы

Сообщество Overcoder
Наверх
Меню