php - Symfony 'SQLSTATE[HY000] [1049] Unknown database ' symfony''

标签 php mysql symfony

我正在和一些 friend 一起做一个 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 的空数据库,看看会发生什么。 Ar 首先加载页面,但随后我们在尝试登录时会收到相同的错误(因为我们仍然需要访问 testdb 数据库中的数据)。

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

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

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

最佳答案

既然您已经创建了名为 symfony 的数据库,那么您需要在 parameters.yml 文件中更改它:

database_name: symfony

或者您可以从命令行运行:

php bin/console doctrine:database:create

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

您还需要设置 MySQL 用户名和密码。默认值是“root”和“null”,因此通常不会起作用。


编辑 #2 从评论反馈听起来像是缓存问题。从命令行试试这个:

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

看看是否可行。

关于php - Symfony 'SQLSTATE[HY000] [1049] Unknown database ' symfony'',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43965093/

相关文章:

php - 在 Laravel 中使用 ajax 删除

python - 打印 MySQLdb 运行的实际查询?

php - elasticsearch - 其中字段为空

php - "A server timeout has occurred"将 Dreamweaver 连接到 MySQL 时出错

php - htmlspecialchars 将撇号转换为 '对于 facebook og :title tag

php - 功能中断

mysql 检查用户是否有超过 x 个事务或来自不同表的超过 x 的评级,并使用 where OR

mysql - 用于故障转移的 DBMS

mysql - NOT IN 语句中的查询原则

php - 在每个 Controller 中处理相同的 try catch 结构