为 MySQL 打开一个 vagrant 服务器
Opening a vagrant server for MySQL
简介
我是一名 php 开发人员。我使用 vagrant 来近似复制实时服务器环境。
我有很多非框架项目 运行ning,例如:简单的插件、作曲家存储库和代码片段。这些通常需要与数据库交互。
与其拥有 10 台,可能是 100 台 VM(全部占用硬盘 space),我只想拥有一个 Vagrant 实例。
现在,通常这很容易,但我不想映射文件夹或类似的东西。我只想:
- 一台流浪机器(目前我有一台空白的 运行ning Ubuntu 服务器)
- mySQL 已安装(是)
- 此 MySQL 可通过非 SSL 方法使用
其他要点:
- 这不需要是安全的:这是一个 test/dump/rebuild 服务器
- 不会使用真实数据,只使用测试数据
- 这将仅在本地可用
PHP不能轻易隧道化,所有代码的用例都是在本地使用。
我是开发人员,不是服务器专家:我想我应该打开一个端口并通过,但正如我所说:我不是专家。有点意识到我以前从来没有用过 "insecure"/非 SSL 的方式!
因此……长篇介绍到此结束:
问题
如何在 ubuntu 流浪环境中不安全地公开 MySQL?
- 我应该能够 运行 一个不使用 SSL
的本地 PHP 脚本
- 我不想完全重建 vagrant 服务器:我只想 commands/steps 打开它
示例PHP 登录参数数组:
$connection_params = array(
'database' => 'cool_database',
'username' => 'open_database',
'password' => 'open_database_password',
'host' => 'domain-in-hosts-file.com',
'driver' => 'mysql',
);
当前采取的步骤
下面几个教程如下:
- 已编辑:
/etc/mysql/mysql.conf.d/mysqld.cnf
将 127.0.0.1
更改为 0.0.0.0
sudo systemctl restart mysql.service
登录到 mysql:
GRANT ALL ON *.* TO 'open_database'@'192.168.55.1' IDENTIFIED BY "open_database_password" WITH GRANT OPTION;
FLUSH PRIVILEGES;
(usernames/passwords 和 ipaddress 已更改,因为这是一个论坛 :) )
编辑:问题的答案
netstat
输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
在 combining/translating 一些博文之后,从每篇博文中获得我需要的东西:
回答
以下是在 vagrant 或类似连接上打开 mysql 的步骤。
端口开放
Vagrant 默认不通过该端口。这可以通过以下方式完成:
- Vagrantfile 风格:
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.yaml 风格:
portmysql:
host: '3306'
guest: '3306'
修改MySQL配置
编辑/etc/mysql/my.cnf
:
- 注释掉
skip-external-locking
- 注释掉
bind-address
这两项阻止 mysql 监听外部地址等
重启MySQL:
sudo service mysql restart
设置用户
- 运行
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'
;
- 刷新权限;
结束!
希望对你有所帮助。
主要问题是我读过的任何博客都没有真正解释所有项目。回顾一下:
- 打开一个端口(通常是3306)
- 设置mysql监听这个端口(外部锁定和绑定地址)
- 设置up/modify一个用户实际能够阅读它(..@'%')
希望对其他人有所帮助。
简介
我是一名 php 开发人员。我使用 vagrant 来近似复制实时服务器环境。
我有很多非框架项目 运行ning,例如:简单的插件、作曲家存储库和代码片段。这些通常需要与数据库交互。
与其拥有 10 台,可能是 100 台 VM(全部占用硬盘 space),我只想拥有一个 Vagrant 实例。
现在,通常这很容易,但我不想映射文件夹或类似的东西。我只想:
- 一台流浪机器(目前我有一台空白的 运行ning Ubuntu 服务器)
- mySQL 已安装(是)
- 此 MySQL 可通过非 SSL 方法使用
其他要点:
- 这不需要是安全的:这是一个 test/dump/rebuild 服务器
- 不会使用真实数据,只使用测试数据
- 这将仅在本地可用
PHP不能轻易隧道化,所有代码的用例都是在本地使用。
我是开发人员,不是服务器专家:我想我应该打开一个端口并通过,但正如我所说:我不是专家。有点意识到我以前从来没有用过 "insecure"/非 SSL 的方式!
因此……长篇介绍到此结束:
问题
如何在 ubuntu 流浪环境中不安全地公开 MySQL?
- 我应该能够 运行 一个不使用 SSL 的本地 PHP 脚本
- 我不想完全重建 vagrant 服务器:我只想 commands/steps 打开它
示例PHP 登录参数数组:
$connection_params = array(
'database' => 'cool_database',
'username' => 'open_database',
'password' => 'open_database_password',
'host' => 'domain-in-hosts-file.com',
'driver' => 'mysql',
);
当前采取的步骤
下面几个教程如下:
- 已编辑:
/etc/mysql/mysql.conf.d/mysqld.cnf
将127.0.0.1
更改为0.0.0.0
sudo systemctl restart mysql.service
登录到 mysql:
GRANT ALL ON *.* TO 'open_database'@'192.168.55.1' IDENTIFIED BY "open_database_password" WITH GRANT OPTION;
FLUSH PRIVILEGES;
(usernames/passwords 和 ipaddress 已更改,因为这是一个论坛 :) )
编辑:问题的答案
netstat
输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
在 combining/translating 一些博文之后,从每篇博文中获得我需要的东西:
回答
以下是在 vagrant 或类似连接上打开 mysql 的步骤。
端口开放
Vagrant 默认不通过该端口。这可以通过以下方式完成:
- Vagrantfile 风格:
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.yaml 风格:
portmysql: host: '3306' guest: '3306'
修改MySQL配置
编辑/etc/mysql/my.cnf
:
- 注释掉
skip-external-locking
- 注释掉
bind-address
这两项阻止 mysql 监听外部地址等
重启MySQL:
sudo service mysql restart
设置用户
- 运行
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'
; - 刷新权限;
结束!
希望对你有所帮助。
主要问题是我读过的任何博客都没有真正解释所有项目。回顾一下:
- 打开一个端口(通常是3306)
- 设置mysql监听这个端口(外部锁定和绑定地址)
- 设置up/modify一个用户实际能够阅读它(..@'%')
希望对其他人有所帮助。