我正在使用SSH配置构建一个Vagrant盒子(CentOS 6.4)。
所有运行正常,LAMP组件已安装并启动,但我已经到了应该保护MySql的步骤(设置mysql密码等)。
可以运行mysql_secure_installation,但它不能在非交互模式下运行。
我可以跑
/usr/bin/mysqladmin -u root password 'newpassword'
但如果我多次配置相同的盒子,Mysql会在第一次接受新密码,但随后会抱怨。
在配置时,是否有一种优雅的方法可以自动保护MySql? (我没有使用Chef / Puppet,只需简单的SSH配置)
答案 0 :(得分:5)
可能的方法是:
/usr/bin/mysql -uroot -pnewpassword -e 'SELECT CURDATE();' || /usr/bin/mysqladmin -u root password 'newpassword'
说明:该脚本首先尝试使用新密码连接到mysql,并且只有在它失败时(即尚未设置密码)执行命令才能设置它。
答案 1 :(得分:0)
在Vagrantfile
添加以下行:
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
<other code>
...
config.vm.provision "shell",
inline: "mysqladmin -uroot -pcurrentpass password newpassword"
end
答案 2 :(得分:-1)
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root'