シェフのmysqlのレシピ順で、mysqlのrootユーザ用のパスワードを設定するために、すべてのステップを自動化するbashスクリプトを実行するためのレシピで "bash"その過程でポップアップします。しかし、コンバージェンスを実行した後にエラーが発生しました。シェフでmysql_secure_installationを自動化する方法
"ERROR 1045(28000):ユーザー 'root' @ 'localhost'(パスワードは使用しています)のアクセスが拒否されました。
私はそれが最初に一時パスワードがmysqld.logファイルで生成され、mysql_secure_installationを実行するためにこの一時パスワードを提供する必要があることを理解しています。しかし、私はログからこの一時パスワードを持ってきて、スクリプトでそれを使うことができるスクリプトにステップを含める方法を見つけることができませんでした。以下は、私が現在レシピで実行しているスクリプトです。
root_password = node.set['mysql_user']['root']['password']
bash "mysql_secure_installation" do
code <<-EOH
mysql -u root -e "DELETE FROM mysql.user WHERE User='';"
mysql -u root -e "DROP DATABASE test;"
mysql -u root -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('#{root_password}');" -D mysql
mysql -u root -p#{root_password} -e "SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('#{root_password}');" -D mysql
mysql -u root -p#{root_password} -e "SET PASSWORD FOR 'root'@'::1' = PASSWORD('#{root_password}');" -D mysql
mysql -u root -p#{root_password} -e "FLUSH PRIVILEGES;"
EOH
end
は何 'mysql'の料理のバージョンと' mysql_server'リソースを使用していますLサーバー? AFAIK最新版の料理本では、 'initial_root_password'を使ってrootパスワードを設定するべきです。 – zuazo
私はmysqlコミュニティの料理本を使用していません。私はcentos 6の通常のインストールプロセスに基づいて私のカスタム料理の本を開発しました。 – RahulK