gpt4 book ai didi

php - 如何使用 Propel 通过 SSH 隧道进行逆向工程?

转载 作者:行者123 更新时间:2023-11-29 06:34:43 25 4
gpt4 key购买 nike

我只能通过 SSH 隧道连接到我的数据库。到目前为止,我一直在从我的数据库中转储模式并将其加载到本地。如何直接连接到我的数据库?

最佳答案

互联网上完全没有这些信息,所以我正在回答我自己的问题。

  1. 关闭本地 MySQL 服务器实例(如果有的话)。
  2. 打开终端并运行以下命令:

    ssh -L 3307:[database hostname]:3306 [SSH username]@[SSH hostname] [-p[SSH port]]

    这可能也适用于 PuTTY,我不确定。

  3. 在您的 build.properties 中,设置以下内容:

    propel.database.url=mysql:host=0.0.0.0;port=3307;dbname=[database name]

不能是localhost。如果是,您将收到以下错误:

propel > reverse:

[echo] +-----------------------------------------------+
[echo] | |
[echo] | Generating XML from PDO connection ! |
[echo] | |
[echo] +-----------------------------------------------+
[propel-schema-reverse] There was an error building XML from metadata: vendor/propel/propel1/generator/build-propel.xml:296:1: SQLSTATE[HY000] [2002] No such file or directory

BUILD FINISHED

Total time: 0.2293 seconds

这个神秘错误意味着它无法在您的计算机上找到 Unix 套接字,因为 even if you are specifying the host and the port , PDO 仍将寻找具有 localhost 的。显然,您永远无法为不在您机器上的服务器打开套接字,即使您将 unix_socket 作为 null 添加到 DSN,它也会提示文件名错误。使用 0.0.0.0 可以修复此错误。我实际上是从 this question 中得出的.

大功告成!您现在可以通过 SSH 隧道使用 Propel 进行逆向工程。

关于php - 如何使用 Propel 通过 SSH 隧道进行逆向工程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669014/

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