导言
我是一个php开发人员。我使用vagrant来近似复制实时服务器环境。
我有许多非框架项目正在运行,例如:简单插件、编写器存储库和代码段。这些通常需要与数据库交互。
而不是有10个,可能100个虚拟机(都占用硬盘空间),我只想有一个流浪汉示例。
现在,通常这会很容易,但我不想Map文件夹之类的。我只想:
一台流浪机器(目前我有一台运行ubuntu服务器的空白机器)
mysql已安装(已安装)
此mysql将通过非ssl方法提供
其他要点:
这不需要是安全的:这是一个测试/转储/重建服务器
不会使用真实数据,只使用测试数据
这将仅在本地可用
php不容易隧道,所有代码的用例都是在本地使用的。
我是一个开发人员,不是服务器Maven:我认为我应该打开一个端口并通过它,但正如我所说的:我不是Maven。有点意识到我以前从来没有用过“不安全的”/非ssl的方式!
因此。。。要结束冗长的介绍:
问题
如何在ubuntuvagrant环境中不安全地公开mysql?
我应该能够运行一个本地php脚本,不使用ssl
我不想完全重建vagrant服务器:我只需要打开它的命令/步骤
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;
(用户名/密码和IP地址已更改,因为这是一个论坛:)
编辑:问题答案 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 -
1条答案
按热度按时间dkqlctbz1#
在合并/翻译一些博客文章后,从每一篇文章中收集我需要的东西:
回答
下面是在vagrant或类似连接上打开mysql的步骤。
港口开放
默认情况下,流浪汉不通过端口。这可以通过以下方式实现:
文件样式:
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.yaml样式:修改mysql配置
编辑
/etc/mysql/my.cnf
:点评
skip-external-locking
点评bind-address
这两项阻止mysql监听外部地址等。重新启动mysql:
sudo service mysql restart
###设置用户跑
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'
;刷新特权;
结束!
希望这能对你有所帮助。
主要的问题是,我读过的博客中没有一个真正解释了所有的内容。因此,概括一下:
打开端口(通常为3306)
将mysql设置为侦听此端口(外部锁定和绑定地址)
设置/修改用户以使其能够实际读取(..@“%”)
希望这能帮助别人。