Além do que foi dito por @nonsenz, se você usar os scripts de provisionamento do puphpet.com, poderá adicionar um arquivo bash à pasta / puphpet / files / startup-always e colocar todos os seus comandos lá. Sempre que o vagrant iniciar ou recarregar, ele chamará o script:
mysql.sh
#!/bin/bash
echo "Updating mysql configs in /etc/mysql/my.cnf."
if [ 'sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf' ]; then
echo "Updated mysql bind address in /etc/mysql/my.cnf to 0.0.0.0 to allow external connections."
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
fi
Ainda melhor (para permitir uma saída mais limpa)
mysql.sh
#!/bin/bash
echo "Updating mysql configs in /etc/mysql/my.cnf."
sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
echo "Updated mysql bind address in /etc/mysql/my.cnf to 0.0.0.0 to allow external connections."
sudo service mysql stop
sudo service mysql start
Isso me permitiu conectar meu IDE (PhpStorm) diretamente ao banco de dados na minha máquina convidada via vagrant. É claro que dei ao usuário do mysql convidado acesso a '%' e encaminhei a porta 3306 no convidado para uma porta (3309) no host. A concessão de acesso também pode ser feita nesse arquivo.
Melhor ainda (mysql execute add in)
mysql.sh
#!/bin/bash
echo "Updating mysql configs in /etc/mysql/my.cnf."
sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
echo "Updated mysql bind address in /etc/mysql/my.cnf to 0.0.0.0 to allow external connections."
echo "Assigning mysql user user1 access on %."
sudo mysql -u user1 -pyourpassword --execute "GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY 'yourpassword' with GRANT OPTION; FLUSH PRIVILEGES;" yourdatabase
echo "Assigned mysql user user1 access on all hosts."
sudo service mysql stop
sudo service mysql start
sudo
resultou em um erro "desculpe, você deve ter um tty" (corrigido apenas removendo 'sudo' das instruções) e meu serviço MySQL foi reiniciado usando/etc/init.d/mysqld stop
e/etc/init.d/mysqld start
. Ambos podem ser apenas peculiaridades do CentOS, em vez de erros no script.