Este relatório de erros no site de desenvolvimento do MySQL aborda o problema de mysql_secure_installation
que requer um usuário interativo sessão.
Há uma boa discussão que tem algumas dicas & exemplos que fazem uso de expect
como uma solução alternativa. O melhor conselho que parece endereçar seu desejo de executar o script de forma não interativa (ou seja, sem interação direta do usuário) é a resposta de Daniël van Eeden, que fornece o seguinte script expect
:
#!/usr/bin/expect --
spawn /usr/local/mysql/bin/mysql_secure_installation
expect "Enter current password for root (enter for none):"
send "\r"
expect "Set root password?"
send "y\r"
expect "New password:"
send "password\r"
expect "Re-enter new password:"
send "password\r"
expect "Remove anonymous users?"
send "y\r"
expect "Disallow root login remotely?"
send "y\r"
expect "Remove test database and access to it?"
send "y\r"
expect "Reload privilege tables now?"
send "y\r"
puts "Ended expect script."
Além disso, parece que a questão geral da base de instalação do MySQL tem coisas não seguras no lugar parece ser endereçado no MySQL 5.6.8 mas somente para novas instalações via RPMs ou instalação de código fonte que são feitas com a opção --random-password
:
New RPM install operations (not upgrades) invoke mysql_install_db with the --random-passwords option. As a consequence, RPM installs from this version onward will have their root accounts secured, and will have no anonymous-user accounts. (Install operations using RPMs for Unbreakable Linux Network are unaffected because they do not use mysql_install_db.)
For install operations using a binary .tar.gz distribution or a source distribution, you can invoke mysql_install_db with the --random-passwords option manually to make your MySQL installation more secure. This is recommended, particularly for sites with sensitive data.