3

我正在尝试将 Symfony2 与 Propel ORM 一起使用来生成要在 MySQL 数据库上运行的 SQL。数据库在端口 3306 上的 VM 上运行。3306 由 virtualbox 转发到 VM,因此可以从外部访问数据库。Symfony2 在 Apache 上运行,Apache 也位于 VM 内部。

当我尝试使用以下方法生成模型类时:

php app/console propel:build

一切正常,这些类在我的项目中可用。但是,当我尝试使用以下方法生成 SQL 时:

php app/console propel:sql:insert --force

我收到一条错误消息:

[REDACTED]/propel1/generator/lib/util/PropelSqlManager.php:259 中的下一个异常 'PDOException' 和消息 'SQLSTATE[HY000] [2006] MySQL server has gone away' 堆栈跟踪:

随后是堆栈跟踪。

我检查了配置和参数 YML 文件,一切都是正确的。当我使用完全相同的凭据测试纯 PHP 连接时,一切正常,我能够对数据库执行 SQL。

关于可能导致这种情况的任何想法?我觉得这可能与 yml 中的不正确字符有关,因为我的密码包含井号 (#)。

4

1 回答 1

1

这可能是由于您的虚拟机资源不足而发生的。此类错误通常发生在超时时。

您可以尝试在您的php.ini

mysql.connect_timeout = 300
default_socket_timeout = 300
于 2013-08-15T07:11:49.717 回答