php - Yii2 连接到另一台服务器上 Docker 实例内的 MYSQL 数据库
问题描述
我有这种情况:
我在数据中心中有一些相互连接的服务器,例如:
- 服务器 1 内部 ip: 10.0.0.1
- 服务器 2 内部 ip: 10.0.0.2
- 服务器 3 内部 ip: 10.0.0.3
- 服务器4内部ip:10.0.0.4
- 服务器5内部ip:10.0.0.5
我需要在 Yii2 中创建一个从服务器 10.0.0.1 到服务器 10.0.0.2 的连接,但是我可以在 10.0.0.2 中看到这个数据库的唯一方法是首先通过 SSH 创建一个到该服务器的隧道,然后创建到 localhost 的连接在 docker 容器中分配的特定端口(至少我在 heidisql 上是这样设置的)。
在新的数据库连接之前,我不知道如何使用 Yii2 创建 SSH 隧道。
到目前为止,这将是我的 db2.php 文件:
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;port=33008;dbname=test_db',
'username' => 'user',
'password' => 'pass',
'charset' => 'utf8',
'attributes'=>[ PDO::ATTR_TIMEOUT => 6000, PDO::ATTR_PERSISTENT => TRUE , PDO::MYSQL_ATTR_INIT_COMMAND => 'select 1', ],
'enableSchemaCache' => true,
'schemaCacheDuration' => 600,
'schemaCache' => 'cache',
]
我只是缺少 SSH 隧道,所以我可以连接到 10.0.0.2
我希望有人可以帮助我,谢谢。
解决方案
推荐阅读
- mysql - MySQL INSERT INTO ON DUPLICATE KEY UPDATE 非连续 id
- python - 我如何按 ID 分组并相互添加列
- python - 按方法值过滤 - SQL 变量过多错误
- arrays - 使用 JSON 文件,我将如何使用 JQ 列出数组内的两个对象?
- docker - 使用 nvidia gpu 创建 docker-compose 时“不允许使用‘设备’属性”
- python - 将唯一组合放入文本文件并检测现有数据
- vb.net - 枚举错误错误。“在被宣布之前不能被提及”
- javascript - 使用 createWriteStream 节点向 JSON 文件中的数组添加值
- python - 在Python中用相同的数字计算每两行
- react-native - 启动隧道时出错 启动隧道超时