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.Parece que sed é a maneira mais fácil neste contexto (após uma instalação limpa):
fonte
O pacote Ubuntu é chamado 'augeas-tools'
fonte
-s
é "salvar automaticamente as atualizações".set
é a ação que Augeas tomará com isso com esta linha./files/etc/mysql/my.cnf
em qual parte / arquivo o Augest funcionará (ele carrega todos os / etc)./target
é um (? array?) de valores decodificados.[ . = "mysqld"]
seleciona o número de destino com o valor "mysqld".bind-address
é o campo de endereço de ligação na seção "mysqld" e o valor após o espaço0.0.0.0
é o valor para o qual ele será definido.Parece que você está procurando Augeas .
A página do projeto está aqui e alguma documentação e exemplos estão aqui. O MySQL está incluído na página de lentes de estoque, mas infelizmente a documentação está vinculada a uma página 404 agora.
Existem também alguns exemplos de uso no Puppet aqui .
fonte