gpt4 book ai didi

mysql - 如何配置 Rails 以实现对远程数据库的无密码访问

转载 作者:IT王子 更新时间:2023-10-29 00:31:01 25 4
gpt4 key购买 nike

注意:这类似于 Use Ruby on Rails and SSH to access remote MySQL database on remote server ,但 OP 没有提供太多信息,并且给出的唯一答案没有回答问题。

背景

我们最近将远程数据库从密码身份验证切换为基于 ssh key 的身份验证。我已经验证我可以通过优雅的 Sequel Pro 访问数据库。具有以下设置的图形数据库客户端(某些名称故意混淆):

MySQL Host: woofwoof.us-west-2.rds.amazonaws.com
Username: bowser
Database: canine
Port: 3306

SSH Host: salt.woofwoof.com
SSH User: guardian
SSH Key: ~/.ssh/id_rsa

现在我需要 Rails 连接到同一个数据库,同样使用基于 ssh key 的身份验证。

问题

我的 config/database.yml 文件中有什么内容?

到目前为止我有:

canine:
adapter: mysql2
database: canine
username: bowser
host: woofwoof.us-west-2.rds.amazonaws.com
port: 3306

...但是如何在 config/database.yml 中指定 SSH HostSSH UserSSH Key 文件?

附加信息

当我们的数据库有密码验证时,以下工作:

canine:
adapter: mysql2
database: canine
username: bowser
password: *secret*
host: woofwoof.us-west-2.rds.amazonaws.com
port: 3306

最佳答案

首先,您需要在 MySQL 服务器上建立 SSH 隧道。在客户端机器上,运行:

ssh -fNg -L 3307:127.0.0.1:3306 guardian@salt.woofwoof.com

这将建立到 salt.woofwoof.com 服务器的 SSH 隧道。任何到本地主机端口 3307 的连接都将通过隧道发送到端口 3306 上的远程主机。

然后像本地连接一样配置 database.yml,但指定转发端口 3307:

canine:
adapater: mysql2
database: canine
username: bowser
password: *secret*
port: 3307

您可能还想将 ssh 隧道设置添加到/etc/inittab,以便在引导后建立隧道。参见 http://chxo.com/be2/20040511_5667.html举一个如何做到这一点的例子。

关于mysql - 如何配置 Rails 以实现对远程数据库的无密码访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com