首页 文章

远程服务器上的Symfony2显示错误

提问于
浏览
-1

今天我上传Symfony2到远程服务器,我得到以下错误....

致命错误:未捕获异常'PDOException',消息'SQLSTATE [HY000] [1045]用户'root'访问被拒绝@'localhost'(使用密码:NO)'/ partner / vendor / doctrine / dbal / lib / Doctrine /DBAL/Driver/PDOConnection.php:43堆栈跟踪:#0 /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(43):PDO - > __ construct('mysql:host = 127 ....','root',NULL,Array)#1 /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(45):Doctrine \ DBAL \ Driver \ PDOConnection- > __ construct('mysql:host = 127 ....','root',NULL,Array)#2 /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(360):Doctrine \ DBAL \ Driver \ PDOMySql \ Driver-> connect(Array,'root',NULL,Array)#3 /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(429):Doctrine \ DBAL \ Connection- > connect()#4 /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(389):Doctrine \ DBAL \ Connection-> getDatabasePlatformVersion()#5 / partner / vendor / doctrine / dbal / lib /学说/ DBAL /连接 . php(328):Doctrine \ DBAL \ Connection-> det在第103行/partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php

但是我在parameters.yml中的MySQL用户与“root”不同,我通过CGI成功创建了数据库模式 . 当用户不同时,为什么Symfony2尝试连接“root”?

3 回答

  • 0

    app.php(或app_dev.php)上的环境配置将决定Symfony将加载哪个配置 . 如果您处于 生产环境 模式(prod),则所有配置都将被app / config / config_prod.yml中的任何内容覆盖 .

    你可能在那里有一些覆盖你的config.yml中的连接细节?

  • 0

    有两个可能的原因 .

    首先,远程服务器上的 parameters.yml 是不同的 . 当你执行 composer.phar install 时,它会被覆盖,如果你当然这样做,并且有一个任务将 parameters.yml.dist 复制到新的 parameters.yml 文件 . 这是因为,版本控制系统中通常会忽略parameters.yml文件 .

    其次,您需要查看 config.ymlconfig_*.yml 文件 . config_*.yml 文件会覆盖您的 config.yml 文件 . 因此,可能数据库连接参数是硬编码的,而不是来自 parameters.yml . 您应该查看以下参数 . 特别是 userpassword 字段 . 你可以看到它的硬编码 . 不读取 parameters.yml 文件 .

    doctrine:
    dbal:
        default_connection:   default
        types:
            # A collection of custom types
            # Example
            some_custom_type:
                class:                Acme\HelloBundle\MyCustomType
                commented:            true
        # If enabled all tables not prefixed with sf2_ will be ignored by the schema
        # tool. This is for custom tables which should not be altered automatically.
        #schema_filter:        ^sf2_
    
        connections:
            # A collection of different named connections (e.g. default, conn2, etc)
            default:
                dbname:               ~
                host:                 localhost
                port:                 ~
                user:                 root
                password:             ~
                charset:              ~
                path:                 ~
                memory:               ~
    
  • 0

    好的,我被清除缓存,一切正常 .

相关问题