所以我在OpenShift上有两个免费装备。
一个是带有MySql 5.7的PHP:
https://github.com/icflorescu/openshift-cartridge-mysql
我可以通过SSH隧道远程登录我的PC而没有任何问题
现在在第二档我想创建Spring Boot应用程序,它将在第一档连接到DB。在第一档使用env | grep MYSQL
我收到:
OPENSHIFT_MYSQL_DB_PORT=13306
OPENSHIFT_MYSQL_DB_HOST=127.10.104.130
所以这个+我的日志数据被放入Spring application.properties
,在成功构建Spring之后因创建数据池而崩溃,因为它无法连接到数据库所以我连接到第二个听到并尝试从第一个齿轮访问MySQL实例:
mysql -u root -h 127.10.104.130 -P 13306
但我收到错误消息:
Can not connect to MySQL Server on '127.10.104.130' (113)
之后我尝试了:
mysql -u root -h myAppName-domain.rhcloud.com -P 13306
导致更长的连接时间,但最终会导致:
Can not connect to MySQL Server on 'myAppName-domain.rhcloud.com' (110)
而且我可以轻松地从#2装备#1装备,所以我很困惑 - 我需要一些额外的sql配置或防火墙设置吗?我也在mysql日志上做尾巴,没有任何东西出现像连接甚至没有。
答案 0 :(得分:1)
如果您使用其他装备进行连接,则必须改为使用OPENSHIFT_MYSQL_DB_PROXY_PORT
。
我发现告诉它数据库问题或网络问题的最简单方法就是尝试telnet到远程mysql主机。
前 - 如果您使用不同的装备,这会导致连接超时。
telnet 127.10.104.130 13306
但这应该连接:
telnet <mysql app id>.domain.rhcloud.com <WHATEVER THE PROXY PORT IS>
答案 1 :(得分:0)
我是上面提到的openshift-cartridge-mysql的作者。
我已经发布了那个盒式磁带已经有一段时间了,但是如果我没记错的话,安装脚本非常谦逊,默认情况下没有创建,所以你必须创建自己的用户,数据库和明确授予适当的特权。
通过ssh
或Workbench通过ssh隧道从PC连接,创建用户和数据库,然后执行以下操作:
GRANT ... ; FLUSH PRIVILEGES;
您可以在MySQL的GRANT命令in the official manual上了解更多信息。
回购README中有一行说明如何授予对root
的远程访问权限,这不像它看起来那样不安全,因为您只能从主应用程序设备访问数据库设备。
但理想情况下,您希望尽可能地限制访问权限(对来自特定主机/ IP的特定用户,例如主应用程序设备)。像这样:
GRANT ALL ON appdb.* TO 'appuser'@'appgear';
完成后不要忘记FLUSH PRIVILEGES
。
我希望这有帮助,
@icflorescu