我只能通过SSH隧道连接到我的数据库。到目前为止,我一直在从我的数据库中转储模式并将其加载到我的本地。如何直接连接到我的数据库?
答案 0 :(得分:2)
这些信息在互联网上完全缺乏,所以我回答了我自己的问题。
打开终端并运行以下命令:
ssh -L 3307:[database hostname]:3306 [SSH username]@[SSH hostname] [-p[SSH port]]
这也适用于PuTTY,我不确定。
在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
添加到DSN为null,它也会抱怨文件名错误。使用0.0.0.0
修复了此错误。我实际上是从this question找出来的。
你已经完成了!您现在可以通过SSH隧道对Propel进行逆向工程。