스크립트 내에서 mysql 바인드 주소 변경 bind-address를 변경하는 가장 좋은

쉘 스크립트에서 my.cnf의 mysql bind-address를 변경하는 가장 좋은 방법은 무엇입니까? mysqladmin과 같은 도구를 사용하는 방법이 있습니까? 또는 sed를 사용해야합니까, 아니면 단순히 my.cnf에 추가하고 두 번째 항목이 첫 번째 항목을 덮어 쓰길 희망합니다 (이것은 아프게 들립니다). mysql-server를 설치 한 후 VM 외부에서 연결을 허용하는 실행 기용 간단한 셸 프로비저닝을 작성하려고합니다.



답변

@nonsenz의 말에 덧붙여 puphpet.com의 프로비저닝 스크립트를 사용하는 경우 / puphpet / files / startup-always 폴더에 bash 파일을 추가하고 모든 명령을 거기에 넣을 수 있습니다. vagrant가 시작되거나 다시로드 될 때마다 스크립트를 호출합니다.

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

더 나은 (더 깨끗한 출력을 가능하게하기 위해)

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

이를 통해 IDE (PhpStorm)를 방랑자를 통해 게스트 컴퓨터의 데이터베이스에 직접 연결할 수있었습니다. 물론 게스트 mysql 사용자에게 ‘%’에 대한 액세스 권한을 부여하고 게스트의 포트 3306을 호스트의 포트 (3309)로 전달했습니다. 이 파일에서도 액세스 권한을 부여 할 수 있습니다.

더 나은 (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


답변

sed 가이 컨텍스트에서 가장 쉬운 방법 인 것처럼 보입니다 (새로 설치 한 후).

sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf


답변

augtool -s set '/files/etc/mysql/my.cnf/target[ . = "mysqld"]/bind-address 0.0.0.0'

우분투 패키지는 ‘augeas-tools’라고 불립니다.


답변

당신이 Augeas 찾고있는 것 같습니다 .

프로젝트 페이지는 여기에 몇 가지 문서예제는 여기에 있습니다. MySQL은 스톡 렌즈 페이지 에 포함되어 있지만 불행히도 설명서는 404 페이지로 연결됩니다.

여기 Puppet 내에서 사용하는 몇 가지 예가 있습니다 .


답변