Dodając do tego, co zostało powiedziane przez @nonsenz, jeśli używasz skryptów aprowizacyjnych puphpet.com, możesz dodać plik bash do folderu / puphpet / files / startup-always i umieścić tam wszystkie swoje polecenia. Za każdym razem, gdy włóczęga się uruchomi lub przeładuje, wywoła skrypt:
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
Jeszcze lepiej (aby umożliwić czystsze wyjście)
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
Umożliwiło mi to połączenie mojego IDE (PhpStorm) bezpośrednio z bazą danych na mojej maszynie-gościu przez włóczęgę. Oczywiście dałem gościowi mysql dostęp do '%' i przekierowałem port 3306 na gościa na port (3309) na hoście. Udzielenie dostępu można również wykonać w tym pliku.
Even Better'er (mysql uruchom dodaj)
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
spowodowało błąd „przepraszam, musisz mieć tty” (naprawiony przez usunięcie „sudo” z instrukcji) i moja usługa MySQL została zrestartowana przy użyciu/etc/init.d/mysqld stop
a/etc/init.d/mysqld start
. Oba mogą być po prostu dziwactwami CentOS, a nie błędami w skrypcie.Wygląda na to, że sed jest najłatwiejszym sposobem w tym kontekście (po czystej instalacji):
źródło
Pakiet Ubuntu nazywa się „augeas-tools”
źródło
-s
jest „automatycznie zapisuj wszelkie aktualizacje”.set
jest działaniem, które Augeas podejmie w tej linii./files/etc/mysql/my.cnf
na której części / pliku Augest będzie działał (ładuje wszystkie / etc)./target
jest (? tablicą?) zdekodowanych wartości.[ . = "mysqld"]
wybiera dowolny numer docelowy o wartości „mysqld”.bind-address
to pole adresu powiązania w sekcji „mysqld”, a wartość po spacji0.0.0.0
to wartość, dla której zostanie ustawiona.Wygląda na to, że szukasz Augeasa .
Strona projektu jest tutaj, a niektóre dokumenty i przykłady są tutaj. MySQL znajduje się na stronie standardowych soczewek, ale niestety dokumentacja prowadzi teraz do strony 404.
Istnieje również kilka przykładów użycia go w Puppet tutaj .
źródło