Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Vagrant中从命令行更改mysql绑定地址_Mysql_Bash_Vagrant - Fatal编程技术网

在Vagrant中从命令行更改mysql绑定地址

在Vagrant中从命令行更改mysql绑定地址,mysql,bash,vagrant,Mysql,Bash,Vagrant,我正在为一个NodeJS项目设置一个新的流浪者箱。对于数据库,我将使用MySQL。我已经设置了一个配置脚本来安装我需要的所有东西,除了从主机访问MySQL(使用Sequel Pro)之外,它还可以很好地工作。我让它工作,但我必须编辑/etc/mysql/my.cnf文件,以便注释掉绑定地址行 是否在命令行上执行此操作,以便我可以将其添加到配置脚本中?如果这是可能的,那么与我共享该项目的任何其他开发人员只需执行vagrant up,并准备好一切即可 以下是我的脚本中与MySQL设置相关的部分: #

我正在为一个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"
#/bin/bash
#变数
DBHOST=localhost
DBNAME=流浪汉
DBUSER=流浪汉
DBPASSWD=test123
#更新包
更新源
#安装MySQL

debconf set selections您应该能够使用脚本中的命令来实现这一点

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
注意:如果您在首次使用时没有重新启动实例,则可能需要重新启动服务才能生效,然后将其添加到脚本中

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

您应该能够使用脚本中的命令来实现这一点

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
注意:如果您在首次使用时没有重新启动实例,则可能需要重新启动服务才能生效,然后将其添加到脚本中

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

你为什么要更改绑定地址?绑定地址是您的服务正在侦听Mysql流量的本地接口。应为0.0.0.0(所有设备),除非您有多个NIC,并且您只希望侦听特定的本地接口。您好,Steve,默认绑定地址为127.0.0.1,这会阻止我从主机连接。通过谷歌搜索,我发现您需要将其更改为0.0.0.0(或注释掉),以便我可以从虚拟机外部进行连接。如果默认值是0.0.0.0,我就不需要这样做(就像你说的),但事实并非如此。或者,有没有一种方法可以在安装步骤中设置默认的0.0.0.0?您应该考虑使用准备好的输入调用mysql安全脚本,并让mysql不再使用root。GL与您的构建脚本,先生!!你为什么要更改绑定地址?绑定地址是您的服务正在侦听Mysql流量的本地接口。应为0.0.0.0(所有设备),除非您有多个NIC,并且您只希望侦听特定的本地接口。您好,Steve,默认绑定地址为127.0.0.1,这会阻止我从主机连接。通过谷歌搜索,我发现您需要将其更改为0.0.0.0(或注释掉),以便我可以从虚拟机外部进行连接。如果默认值是0.0.0.0,我就不需要这样做(就像你说的),但事实并非如此。或者,有没有一种方法可以在安装步骤中设置默认的0.0.0.0?您应该考虑使用准备好的输入调用mysql安全脚本,并让mysql不再使用root。GL与您的构建脚本,先生!!谢谢那真是一种享受。我正在寻找一种变通方法,在项目中包含my.cnf的副本,并在资源调配结束时使用cp复制if,但我更喜欢此解决方案。对,如果您有许多更改要做,在资源调配期间保留文件的版本并进行复制会更容易,但如果您只是想进行一点小的更改,使用一些脚本会更好。那真是一种享受。我正在寻找一种变通方法,在项目中包含my.cnf的副本,并在资源调配结束时使用cp复制if,但我更喜欢此解决方案。对,如果您有许多更改要做,在资源调配期间保留文件的版本并进行复制会更容易,但如果您只是想进行一点小的更改,使用一些脚本更好