我正在为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"
感谢您提供的任何帮助。
答案 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