【问题标题】:I can't connect MySQL DB in symfony 1.0我无法在 symfony 1.0 中连接 MySQL 数据库
【发布时间】:2012-03-04 11:26:20
【问题描述】:

我使用 symfony1.0.22。在本地主机上,在 MAMP 上。 和askeet一起学习,我不能动……

我无法连接 mySQL DB... 它说“没有这样的文件或目录”。 我听不懂它在说什么!

日志如下。请告诉我我能做什么......

>     symfony propel-insert-sql
>     >> schema    converting "/Applications/MAMP/..._fail/config/schema.yml" to XML
>     >> schema    putting /Applications/MAMP/htdo...ail/config/generated-schema.xml Buildfile:
> /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build.xml
> [resolvepath] Resolved /Applications/MAMP/htdocs/hatch/sf_fail/config
> to /Applications/MAMP/htdocs/hatch/sf_fail/config
>     
>     propel-project-builder > check-project-or-dir-set:
>     
>     propel-project-builder > check-project-set:
>     
>     propel-project-builder > set-project-dir:
>     
>     propel-project-builder > check-buildprops-exists:
>     
>     propel-project-builder > check-buildprops-for-propel-gen:
>     
>     propel-project-builder > check-buildprops:
>     
>     propel-project-builder > configure:
>          [echo] Loading project-specific props from /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini  [property]
> Loading /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>     
>     propel-project-builder > insert-sql:
>         [phing] Calling Buildfile '/Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml'
> with target 'insert-sql'  [property] Loading
> /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/./default.properties
>     
>     propel > insert-sql: [propel-sql-exec] Executing statements in file:
> /Applications/MAMP/htdocs/hatch/sf_fail/data/sql/lib.model.schema.sql
> [propel-sql-exec] Our new url -> mysql://root:root@localhost/iii
> Execution of target "insert-sql" failed for the following reason:
> /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml:296:1:
> [wrapped: connect failed [Native Error: No such file or directory]
> [User Info: Array]]
>         [phing] /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml:296:1:
> [wrapped: connect failed [Native Error: No such file or directory]
> [User Info: Array]]
>     
>     BUILD FINISHED
>     
>     Total time: 0.3183 seconds
>     >> file-     /Applications/MAMP/htdocs/hatch...ail/config/generated-schema.xml

附:下面是propel.ini。

>         propel.targetPackage       = lib.model
>         propel.packageObjectModel  = true
>         propel.project             = sf_fail
>         propel.database            = mysql
>         #propel.database.createUrl  = mysql://root:root@localhost/
>         propel.database.url        = mysql://root:root@localhost/sf_fail
>         
>         propel.addGenericAccessors = true
>         propel.addGenericMutators  = true
>         propel.addTimeStamp        = false
>         
>         propel.schema.validate     = false
>         propel.mysql.tableType = InnoDB
>         
>         ; directories
>         propel.home                    = .
>         propel.output.dir              = /var/www/symfony/sf_fail
>         propel.schema.dir              = ${propel.output.dir}/config
>         propel.conf.dir                = ${propel.output.dir}/config
>         propel.phpconf.dir             = ${propel.output.dir}/config
>         propel.sql.dir                 = ${propel.output.dir}/data/sql
>         propel.runtime.conf.file       = runtime-conf.xml
>         propel.php.dir                 = ${propel.output.dir}
>         propel.default.schema.basename = schema
>         propel.datadump.mapper.from    = *schema.xml
>         propel.datadump.mapper.to      = *data.xml
>         
>         ; builder settings
>         propel.builder.peer.class              = addon.propel.builder.SfPeerBuilder
>         propel.builder.object.class            = addon.propel.builder.SfObjectBuilder
>         
>         propel.builder.objectstub.class        = addon.propel.builder.SfExtensionObjectBuilder
>         propel.builder.peerstub.class          = addon.propel.builder.SfExtensionPeerBuilder
>         propel.builder.objectmultiextend.class = addon.propel.builder.SfMultiExtendObjectBuilder
>         propel.builder.mapbuilder.class        = addon.propel.builder.SfMapBuilderBuilder
>         propel.builder.interface.class         = propel.engine.builder.om.php5.PHP5InterfaceBuilder
>         propel.builder.node.class              = propel.engine.builder.om.php5.PHP5NodeBuilder
>         propel.builder.nodepeer.class          = propel.engine.builder.om.php5.PHP5NodePeerBuilder
>         propel.builder.nodestub.class          = propel.engine.builder.om.php5.PHP5ExtensionNodeBuilder
>         propel.builder.nodepeerstub.class      = propel.engine.builder.om.php5.PHP5ExtensionNodePeerBuilder
>         
>         propel.builder.addIncludes = false
>         propel.builder.addComments = false
>         
>         propel.builder.addBehaviors = false

遇到这个问题之前我做了什么

通过 pear 在 /Applications/MAMP/bin/php5/lib/php/ 中安装 symfony1.0.22

$ sudo ln -s /Applications/MAMP/bin/php5/bin/pear /usr/bin/pear
$ pear upgrade PEAR 
$ pear channel-discover pear.symfony-project.com
$ pear install symfony-1.0.22
$ sudo ln -s -f /Applications/MAMP/bin/php5/bin/symfony /usr/bin/symfony

我在 /Application/MAMP 中创建了名为“sf_fail”的目录

$cd /Application/MAMP/sf_fail
$symfony init-project sf_fail
$symfony init-app frontend

接下来,我编辑 shema.yml,database.yml,propel.ini 来创建数据库。我通过 MAMP 的 phpMyAdmin 创建了数据库,命名为 'sf_fail'。

$symfony propel-build-model
$symfony propel-build-sql

我认为,在下面的命令之前没有问题。

$symfony propel-insert-sql

这不能移动呃... 我刚刚添加了“propel-build-all”的结果以获取更多信息。

>         symfony propel-build-all
>         >> schema    converting "/Applications/MAMP/..._fail/config/schema.yml" to XML
>         >> schema    putting /Applications/MAMP/htdo...ail/config/generated-schema.xml
>         Buildfile: /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build.xml
>         [resolvepath] Resolved /Applications/MAMP/htdocs/hatch/sf_fail/config to
> /Applications/MAMP/htdocs/hatch/sf_fail/config
>         
>         propel-project-builder > check-project-or-dir-set:
>         
>         propel-project-builder > check-project-set:
>         
>         propel-project-builder > set-project-dir:
>         
>         propel-project-builder > check-buildprops-exists:
>         
>         propel-project-builder > check-buildprops-for-propel-gen:
>         
>         propel-project-builder > check-buildprops:
>         
>         propel-project-builder > configure:
>              [echo] Loading project-specific props from /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>          [property] Loading /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>         
>         propel-project-builder > om:
>             [phing] Calling Buildfile '/Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml'
> with target 'om'
>          [property] Loading /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/./default.properties
>         
>         propel > check-run-only-on-schema-change:
>         
>         propel > om-check:
>         
>         propel > om:
>              [echo] +------------------------------------------+
>              [echo] |                                          |
>              [echo] | Generating Peer-based Object Model for   |
>              [echo] | YOUR Propel project! (NEW OM BUILDERS)!  |
>              [echo] |                                          |
>              [echo] +------------------------------------------+
>         [phingcall] Calling Buildfile '/Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml'
> with target 'om-template'
>          [property] Loading /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/./default.properties
>         
>         propel > om-template:
>         [PHP Error] strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting
> or the date_default_timezone_set() function. In case you used any of
> those methods and you are still getting this warning, you most likely
> misspelled the timezone identifier. We selected 'Asia/Tokyo' for
> 'JST/9.0/no DST' instead [line 539 of
> /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/classes/propel/phing/AbstractPropelDataModelTask.php]
>         [propel-om] Target database type: mysql
>         [propel-om] Target package: lib.model
>         [propel-om] Using template path: /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/templates
>         [propel-om] Output directory: /Applications/MAMP/htdocs/hatch/sf_fail
>         [propel-om] Processing: generated-schema.xml
>         [propel-om] Processing Datamodel : JoinedDataModel
>         [propel-om]   - processing database : propel
>         [propel-om]   + user
>         [propel-om]       -> BaseUserPeer [builder: SfPeerBuilder]
>         [propel-om]       -> BaseUser [builder: SfObjectBuilder]
>         [propel-om]       -> UserMapBuilder [builder: SfMapBuilderBuilder]
>         [propel-om]       -> (exists) UserPeer
>         [propel-om]       -> (exists) User
>         [propel-om]   + tag
>         [propel-om]       -> BaseTagPeer [builder: SfPeerBuilder]
>         [propel-om]       -> BaseTag [builder: SfObjectBuilder]
>         [propel-om]       -> TagMapBuilder [builder: SfMapBuilderBuilder]
>         [propel-om]       -> (exists) TagPeer
>         [propel-om]       -> (exists) Tag
>         [propel-om]   + photo
>         [propel-om]       -> BasePhotoPeer [builder: SfPeerBuilder]
>         [propel-om]       -> BasePhoto [builder: SfObjectBuilder]
>         [propel-om]       -> PhotoMapBuilder [builder: SfMapBuilderBuilder]
>         [propel-om]       -> (exists) PhotoPeer
>         [propel-om]       -> (exists) Photo
>         [propel-om]   + idle
>         [propel-om]       -> BaseIdlePeer [builder: SfPeerBuilder]
>         [propel-om]       -> BaseIdle [builder: SfObjectBuilder]
>         [propel-om]       -> IdleMapBuilder [builder: SfMapBuilderBuilder]
>         [propel-om]       -> (exists) IdlePeer
>         [propel-om]       -> (exists) Idle
>         
>         BUILD FINISHED
>         
>         Total time: 1.5223 second
>         >> file-     /Applications/MAMP/htdocs/hatch...ail/config/generated-schema.xml
>         >> schema    converting "/Applications/MAMP/..._fail/config/schema.yml" to XML
>         >> schema    putting /Applications/MAMP/htdo...ail/config/generated-schema.xml
>         Buildfile: /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build.xml
>         [resolvepath] Resolved /Applications/MAMP/htdocs/hatch/sf_fail/config to
> /Applications/MAMP/htdocs/hatch/sf_fail/config
>         
>         propel-project-builder > check-project-or-dir-set:
>         
>         propel-project-builder > check-project-set:
>         
>         propel-project-builder > set-project-dir:
>         
>         propel-project-builder > check-buildprops-exists:
>         
>         propel-project-builder > check-buildprops-for-propel-gen:
>         
>         propel-project-builder > check-buildprops:
>         
>         propel-project-builder > configure:
>              [echo] Loading project-specific props from /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>          [property] Loading /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>         
>         propel-project-builder > sql:
>             [phing] Calling Buildfile '/Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml'
> with target 'sql'
>          [property] Loading /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/./default.properties
>         
>         propel > check-run-only-on-schema-change:
>         
>         propel > sql-check:
>         
>         propel > pgsql-quoting-check:
>         
>         propel > sql:
>              [echo] +------------------------------------------+
>              [echo] |                                          |
>              [echo] | Generating SQL for YOUR Propel project!  |
>              [echo] |                                          |
>              [echo] +------------------------------------------+
>         [phingcall] Calling Buildfile '/Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml'
> with target 'sql-template'
>          [property] Loading /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/./default.properties
>         
>         propel > sql-template:
>         [propel-sql] Processing: generated-schema.xml
>         [propel-sql] Writing to SQL file: /Applications/MAMP/htdocs/hatch/sf_fail/data/sql/lib.model.schema.sql
>         [propel-sql]  + user [builder: MysqlDDLBuilder]
>         [propel-sql]  + tag [builder: MysqlDDLBuilder]
>         [propel-sql]  + photo [builder: MysqlDDLBuilder]
>         [propel-sql]  + idle [builder: MysqlDDLBuilder]
>         
>         BUILD FINISHED
>         
>         Total time: 0.3328 seconds
>         >> file-     /Applications/MAMP/htdocs/hatch...ail/config/generated-schema.xml
>         >> schema    converting "/Applications/MAMP/..._fail/config/schema.yml" to XML
>         >> schema    putting /Applications/MAMP/htdo...ail/config/generated-schema.xml
>         Buildfile: /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build.xml
>         [resolvepath] Resolved /Applications/MAMP/htdocs/hatch/sf_fail/config to
> /Applications/MAMP/htdocs/hatch/sf_fail/config
>         
>         propel-project-builder > check-project-or-dir-set:
>         
>         propel-project-builder > check-project-set:
>         
>         propel-project-builder > set-project-dir:
>         
>         propel-project-builder > check-buildprops-exists:
>         
>         propel-project-builder > check-buildprops-for-propel-gen:
>         
>         propel-project-builder > check-buildprops:
>         
>         propel-project-builder > configure:
>              [echo] Loading project-specific props from /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>          [property] Loading /Applications/MAMP/htdocs/hatch/sf_fail/config/propel.ini
>         
>         propel-project-builder > insert-sql:
>             [phing] Calling Buildfile '/Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml'
> with target 'insert-sql'
>          [property] Loading /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/./default.properties
>         
>         propel > insert-sql:
>         [propel-sql-exec] Executing statements in file: /Applications/MAMP/htdocs/hatch/sf_fail/data/sql/lib.model.schema.sql
>         [propel-sql-exec] Our new url -> mysql://root:root@localhost/sf_fail
>         Execution of target "insert-sql" failed for the following reason:
> /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml:296:1:
> [wrapped: connect failed [Native Error: No such file or directory]
> [User Info: Array]]
>             [phing] /Applications/MAMP/bin/php5/lib/php/symfony/vendor/propel-generator/build-propel.xml:296:1:
> [wrapped: connect failed [Native Error: No such file or directory]
> [User Info: Array]]
>     
>     BUILD FINISHED
>     
>     Total time: 0.1648 seconds
>     >> file-     /Applications/MAMP/htdocs/hatch...ail/config/generated-schema.xml

【问题讨论】:

  • Symfony 1.0 已经过时了。如果您需要从 Symfony 开始,请使用 2012 年 11 月之前受支持的 1.4 稳定版本,或者(最好)转移到 Symfony2。
  • 另外,围绕“propel 1.2 没有这样的文件或目录”进行一些网络搜索 - 我得到了 this
  • 感谢您提供的附加信息(尽管将其拆分为多个
     块会更有意义)。我上面链接中的建议有帮助吗?里面有很多建议。
  • >richsage thx 编辑!!但我没有弄清楚...

标签: php database symfony1 mamp propel


【解决方案1】:

Propel 1.2(捆绑版本)中的一些错误消息可能会更有帮助,这是肯定的。它也不使用 PDO,因此比最新版本慢得多。我建议您至少升级到 Symfony 1.3,它安装了更好的 Propel 版本。

@richsage 推荐 Symfony 1.4,但是强制执行的表单系统——以我的拙见——过于复杂。 Symfony 1.3 也有它,但至少在那里你可以切换到 10 兼容模式(我忘记了它到底叫什么)——这让你回到组件助手方法。此外,您可以通过添加插件在 Symfony 1.3(或 1.4)中将您的 Propel 版本升级到 1.6。

【讨论】:

  • 谢谢回答!但我必须在 Symfony 1.0.22 上进行,因为我的公司使用 1.0... X(
  • 好的;您可以将propel.ini 的内容添加到问题中吗?同时让我们知道您在此之前使用过哪些其他命令。
  • (不要忘记,如果您在内部受到“我们只使用软件 X”规则的约束,作为开发人员,您有责任提出升级的理由。没有其他人会这样做游说您需要的技术更改)
  • 对不起,我不能很好地使用这个系统...只是我添加了新的信息。
  • 没有问题。请记住,无论它是什么,它都不会在 Propel 1.2 或 Symfony 1.0 中得到修复——它们都已经超出了维护周期。
【解决方案2】:

类似问题

[wrapped: connect failed [Native Error: No such file or directory] [User Info: Array]]

在工作中的旧 Symfony1 项目遇到了完全相同的问题,对我有用的修复方法是将 databases.yml 从:-

mysql://root:@localhost/database_name_here

mysql://root:@127.0.0.1/database_name_here 

这样做的根本问题是原始开发环境是在 Windows 上设置的,而我的开发环境是在 Mac 上。这对你来说可能不是同样的情况,但希望能帮助某人,寻找这个错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-06
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2017-07-29
    • 2018-09-17
    • 1970-01-01
    相关资源
    最近更新 更多