在Vagrant中从命令行更改mysql bind-address

时间:2017-08-26 22:40:18

标签: mysql bash vagrant

我正在为NodeJS项目设置一个新的流浪者盒子。对于数据库,我将使用MySQL。我已经设置了一个配置脚本来安装我需要的所有东西,除了从主机访问MySQL(使用Sequel Pro)之外,它都很有用。我有它的工作,但我必须编辑/etc/mysql/my.cnf文件,以便注释掉绑定地址行。

无论如何都要在命令行上执行此操作,以便将其添加到配置脚本中?如果这是可能的话,那么我与之共享项目的任何其他开发人员只需要vagrant up并准备就绪。

以下是与MySQL设置相关的脚本部分:

#!/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"

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

您应该可以使用脚本中的sed命令

来实现此目的
apt-get install -y mysql-server
sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
...

请注意,如果您配置并且不重新启动第一次使用的实例,则可能需要重新启动服务才能生效,然后将其添加到脚本中

service mysql stop
service mysql start