vagrant ssh provisioning - mysql密码

时间:2013-09-15 12:20:00

标签: mysql vagrant provisioning

我正在使用SSH配置构建一个Vagrant盒子(CentOS 6.4)。

所有运行正常,LAMP组件已安装并启动,但我已经到了应该保护MySql的步骤(设置mysql密码等)。

可以运行mysql_secure_installation,但它不能在非交互模式下运行。

我可以跑

 /usr/bin/mysqladmin -u root password 'newpassword' 

但如果我多次配置相同的盒子,Mysql会在第一次接受新密码,但随后会抱怨。

在配置时,是否有一种优雅的方法可以自动保护MySql? (我没有使用Chef / Puppet,只需简单的SSH配置)

3 个答案:

答案 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'