Symfony' SQLSTATE [HY000] [1049]未知数据库' symfony''

时间:2017-05-14 14:33:25

标签: php mysql symfony

我正和一位朋友一起参与symfony(2.5。)项目,而我们正试图让网站工作,但不知怎的,它一直在崩溃。我们尝试更新到更新版本的symfony(2. )并清除缓存,但似乎没有任何效果。

我认为问题的根源是symfony试图以某种方式访问​​'默认'数据库而不是我们在

中指定的数据库
    parameters.yml

这是文件:

    parameters:
      database_driver: pdo_mysql
      database_host: 127.0.0.1
      database_port: 3306
      database_name: testdb
      database_user: root
      database_password: null
      mailer_transport: smtp
      mailer_host: 127.0.0.1
      mailer_user: null
      mailer_password: null
      secret: ThisIsVerySecret
      locale: en
      debug_toolbar: true
      debug_redirects: false
      use_assetic_controller: true

Config.yml - >学说部分

    # Doctrine Configuration
    doctrine:
      dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8
      orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

paginaController

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;

class PaginaController extends Controller
{

    /**
     * @Template
     */
    public function partnersAction()
    {
        return array();
    }
    /**
     * @Template
     * @Cache(expires="tomorrow")
     */
    public function homeAction()
    {
        return array();
    }

    /**
     * @Template
     */
    public function geschiedenisAction()
    {
        return array();
    }

    /**
     * @Template
     */
    public function profielAction()
    {
        return array();
    }

    /**
     * @Template
     */
    public function reunistenAction()
    {
        return array();
    }

    /**
     * @Template
     */
    public function linksAction()
    {
        return array();
    }
}

我们创建了一个名为symfony的空数据库,看看会发生什么。 首先加载页面,但是在尝试登录时我们会收到相同的错误(因为我们仍然需要访问testdb数据库中的数据)。

    Base table or view not found: 1146 Table 'symfony.leden' doesn't exist

在此错误中,它还引用symfony - 数据库,而不是testdb - 数据库。

是否有任何可能的方法来解决此问题,并让symfony识别正确的数据库(testdb),而不是访问名为symfony的非排除数据库?

1 个答案:

答案 0 :(得分:1)

由于您已创建名为symfony的数据库,因此您需要在parameters.yml文件中更改此内容:

database_name: symfony

或者从命令行运行:

php bin/console doctrine:database:create

这将在parameters.yml文件中创建数据库。

您还需要设置MySQL用户名和密码。默认为'root'和'null',因此通常不起作用。

编辑#2。编辑#2 听起来像评论反馈中的缓存问题。从命令行尝试:

php bin/console cache:clear --env=prod

看看是否有效。