2017-08-26 8 views
0

NodeJSプロジェクト用の新しい迷惑メールボックスを設定しています。データベースの場合、私はMySQLを使用します。私は必要なものすべてをインストールするためのプロビジョニングスクリプトをセットアップしました。ホストマシンからMySQLにアクセスすること(Sequel Proを使う)とは別にすごく機能します。私はそれが働いているが、私はバインドアドレスの行をコメントアウトするために/etc/mysql/my.cnfファイルを編集する必要があります。Vagrantのコマンドラインからmysql bind-addressを変更してください。

プロビジョニングスクリプトに追加できるように、コマンドラインでこれを行う必要はありますか?これが可能ならば、私がプロジェクトを共有している他の開発者はvagrant upを実行するだけでよいでしょう。あなたが提供することができます任意の助け

#!/bin/bash 

# Variables 
DBHOST=localhost 
DBNAME=vagrant 
DBUSER=vagrant 
DBPASSWD=test123 

# Update packages 
apt-get update 

# Install MySQL 
debconf-set-selections <<< "mysql-server mysql-server/root_password password $DBPASSWD" 
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $DBPASSWD" 
apt-get install -y mysql-server 
mysql -uroot -p$DBPASSWD -e "CREATE DATABASE $DBNAME" 
mysql -uroot -p$DBPASSWD -e "CREATE USER '$DBUSER'@'localhost' IDENTIFIED BY '$DBPASSWD'" 
mysql -uroot -p$DBPASSWD -e "GRANT ALL PRIVILEGES ON $DBNAME.* TO '$DBUSER'@'localhost'" 
mysql -uroot -p$DBPASSWD -e "CREATE USER '$DBUSER'@'10.0.2.2' IDENTIFIED BY '$DBPASSWD'" 
mysql -uroot -p$DBPASSWD -e "GRANT ALL PRIVILEGES ON $DBNAME.* TO '$DBUSER'@'10.0.2.2'" 
echo "Installed MySQL" 

ありがとう:

以下はMySQLのセットアップに関連する私のスクリプトの一部です。

+1

なぜバインドされたアドレスを変更しようとしていますか?バインドアドレスは、サービスがMysqlトラフィックをリスンするローカルインターフェイスです。あなたが複数のnicsを持っていて、特定のローカルインターフェースだけを聞きたいのでなければ、0.0.0.0(すべてのデバイス)でなければなりません。 –

+1

こんにちはSteve、デフォルトのバインドアドレスは127.0.0.1で、私のホストマシンからの接続が停止します。いくつかのグーグルを行うことから、私はVMの外から接続できるように、これを0.0.0.0(またはコメントアウト)に変更する必要があることがわかりました。もしデフォルトが0.0.0.0だったら私はこれをする必要はありません(あなたの言うように)が、そうではありません。あるいは、インストール手順でデフォルト0.0.0.0にする方法はありますか? –

+0

準備された入力でmysqlセキュアスクリプトを起動し、rootを使ってmysqlをオフにする必要があります。あなたのビルドスクリプトの先生とGL!おかげさまで –

答えて

1

、追加あなたが準備し、第1回の使用のためにインスタンスを再起動しない場合は、有効にするサービスを再起動する必要がありますあなたはあなたのスクリプト

apt-get install -y mysql-server 
sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf 
... 

ノートからこの使用sedコマンドを達成することができるはずこれはあなたのスクリプトにあります

service mysql stop 
service mysql start 
+0

それは治療に効果があった。私は、プロジェクトとmy.cnfのコピーを含めるための回避策を見ていたとプロビジョニングの最後にcpをコピーするが、私はこのソリューションがはるかに好きです。 –

+0

あなたが作成する多くの変更がある場合は、ファイルのバージョンを保持してプロビジョニング中にコピーする方が簡単ですが、小さな変更を探しているだけの場合は、 –

関連する問題