Agregando a lo que ha dicho @nonsenz, si usa los scripts de aprovisionamiento de puphpet.com, puede agregar un archivo bash a la carpeta / puphpet / files / startup-always y colocar todos sus comandos allí. Cada vez que vagabundo comienza o se recarga, llamará al 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
Aún mejor (para permitir una salida más limpia)
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
Esto me permitió conectar mi IDE (PhpStorm) directamente a la base de datos en mi máquina invitada a través de vagabundo. Por supuesto, le di acceso al usuario mysql invitado a '%' y reenvié el puerto 3306 del invitado a un puerto (3309) del host. La concesión de acceso también podría hacerse en este archivo también.
Aún mejor (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
dio como resultado un error de "perdón, debe tener un tty" (solucionado simplemente eliminando 'sudo' de las declaraciones) y mi servicio MySQL se reinició usando/etc/init.d/mysqld stop
y/etc/init.d/mysqld start
. Ambos pueden ser solo peculiaridades de CentOS en lugar de errores con el script.Parece que sed es la forma más fácil en este contexto (después de una instalación limpia):
fuente
El paquete de Ubuntu se llama 'augeas-tools'
fuente
-s
es "guardar automáticamente cualquier actualización".set
Es la acción que Augeas tomará con esto con esta línea./files/etc/mysql/my.cnf
en qué parte / archivo trabajará Augest (carga todo / etc)./target
es un (? array?) de valores decodificados.[ . = "mysqld"]
selecciona cualquier número de destino que tenga el valor "mysqld".bind-address
es el campo de dirección de enlace en la sección "mysqld", y el valor después del espacio0.0.0.0
es el valor en el que se establecerá.Parece que estás buscando Augeas .
La página del proyecto está aquí y hay documentación y ejemplos aquí. MySQL está incluido en la página de lentes de stock, pero desafortunadamente la documentación enlaza con una página 404 ahora.
También hay algunos ejemplos de su uso dentro de Puppet aquí .
fuente