Pour ajouter à ce qui a été dit par @nonsenz, si vous utilisez les scripts d'approvisionnement de puphpet.com, vous pouvez ajouter un fichier bash dans le dossier / puphpet / files / startup-always et y placer toutes vos commandes. Chaque fois qu'un vagabond démarre ou se recharge, il appellera le 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
Encore mieux (pour permettre une sortie plus propre)
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
Cela m'a permis de connecter mon IDE (PhpStorm) directement à la base de données sur ma machine invitée via vagrant. Bien sûr, j'ai donné à l'utilisateur mysql invité l'accès à '%' et transmis le port 3306 sur l'invité à un port (3309) sur l'hôte. L'octroi d'accès pourrait également être fait dans ce fichier.
Encore mieux (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
entraîné une erreur "désolé, vous devez avoir un tty" (corrigé en supprimant simplement 'sudo' des instructions) et mon service MySQL a été redémarré à l'aide de/etc/init.d/mysqld stop
et/etc/init.d/mysqld start
. Ces deux éléments peuvent être simplement des bizarreries de CentOS plutôt que des erreurs avec le script.Il semble que sed soit le moyen le plus simple dans ce contexte (après une installation propre):
la source
Le paquet Ubuntu s'appelle 'augeas-tools'
la source
-s
est "enregistrer automatiquement toutes les mises à jour".set
est l'action qu'Augeas entreprendra avec cette ligne./files/etc/mysql/my.cnf
sur quelle partie / fichier Augest travaillera (il charge tout / etc)./target
est un (? tableau?) de valeurs décodées.[ . = "mysqld"]
sélectionne le numéro cible qui a la valeur "mysqld".bind-address
est le champ bind-address dans la section "mysqld", et la valeur après l'espace0.0.0.0
est la valeur à laquelle elle sera définie.On dirait que vous cherchez Augeas .
La page du projet est ici et une documentation et des exemples sont ici. MySQL est inclus sur la page des objectifs en stock, mais malheureusement, la documentation renvoie à une page 404 maintenant.
Il y a aussi quelques exemples d'utilisation dans Puppet ici .
la source