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

时间:2016-01-14 22:40:39

标签: php mysql symfony doctrine-orm doctrine

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

  

致命错误:带有消息的未捕获异常'PDOException'   'SQLSTATE [HY000] [1045]用户'root'@'localhost'拒绝访问   (使用密码:NO)'in   /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):   教义\ DBAL \驱动\ PDOConnection-> __构建体( 'MySQL的:主机= 127 ....',   'root',NULL,Array)#2   /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(360):   Doctrine \ DBAL \ Driver \ PDOMySql \ Driver-> connect(Array,'root',NULL,   数组)#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/Doctrine/DBAL/Connection.php(328):   Doctrine \ DBAL \ Connection->中   /partner/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php   在第103行

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

有两个可能的原因。

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

其次,您需要查看 config.yml config _ *。yml 文件。 config _ *。yml 文件会覆盖您的 config.yml 文件。因此,数据库连接参数可能是硬编码的,而不是来自 parameters.yml 。您应该查看以下参数。具体为用户密码字段。你可以看到它的硬编码。不读取 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:               ~

答案 2 :(得分:0)

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