【问题标题】:PDOException SQLSTATE[HY000] [1049] Unknown database 'forge' failedPDOException SQLSTATE [HY000] [1049] 未知数据库“伪造”失败
【发布时间】:2015-02-09 23:43:27
【问题描述】:

我想访问一个Mysql数据第一步是为“vanvlymen”创建一个新表,我输入了mysql> USE vanvlymen;数据库改变了。并输入 SHOW 表格;显示数据库包含的可用表。

mysql -u root -p 
enter password: ****

mysql> show databases;
-databases-

 information_schema
 mysql
 performance_schema
 phpmyadmin
 vanvlymen

 5 rows...

一切看起来都很好...... 我决定告诉 mysql 在执行查询之前指定我正在处理的数据库为“vanvlymen”

app/config/database.php

   'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'vanvlymen',
        'username'  => 'foobar',
        'password'  => 'foobar',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

另存为文件 使用 FTP 转到 FileZilla 找到一个文件拖放到我的实时服务器中覆盖 database.php 文件。

我试过这样清除缓存

 php artisan cache:clear 

 php artisan migrate

错误:

 SQLSTATE[42000] [1049] unknown database 'forge'. 

为什么保留它说未知数据库“伪造”我除了更改为 vanvlymen 数据库。我应该删除mysql并重新安装吗?

我正在使用带有 laravel 4.2 的 windows 8.1

使用phpmyadmin,我知道登录的密码和用户名是什么。

【问题讨论】:

  • 您可以通过什么方式发布您正在使用的迁移文件?
  • 文件迁移为空。我在本地工作,但我还没有将所有文件放入 FileZilla 上的实时迁移中......当我这样做时,它与“[1045] 用户'forge'@localhost'的访问被拒绝(使用密码:否)。”
  • 我通过单击右键返回 FileZilla 上的 app/config/database.php,查找查看/编辑打开文件。寻找列表数据库更改为“vanvlymen”,用户名、密码来自 phpmyadmin 确保其连接正确

标签: php mysql database laravel


【解决方案1】:

删除/bootstrap/cache 中的两个文件config.phpservices.php。然后再试一次。

【讨论】:

  • 究竟添加什么?
【解决方案2】:

你有类似 app/config/yourEnvironment/database.php 的东西吗? 例如 localproduction。 'forge' 是此配置文件中 DB 的默认名称,因此看起来您的应用正在加载错误的配置文件。

【讨论】:

    【解决方案3】:

    希望这对其他人有所帮助。我突然遇到了一个问题,我正在构建的开发站点停止连接到数据库,正如 OP 所说:

    PDOException SQLSTATE[HY000] [1049] Unknown database 'forge' failed
    

    经过多次挠头(!)我发现我在 /bootstrap/start.php 中设置的主机名值是错误的,因为我的主机名在我的 macbook pro 上已更改!?我不知道如何,但它从RobMacbookPro2.local 变成了RobMacbookPro.local。这意味着它退回到生产环境,因此使用标准 DB=forge 加载了不正确的 database.php 文件(这是错误的)

    查看本指南: http://laravel.com/docs/4.2/configuration

    特别注意代码:

    <?php
    
    $env = $app->detectEnvironment(array(
    
        'local' => array('your-machine-name'),
    
    ));
    

    在 Mac 上,可能在 linux 上?您可以通过在终端中输入# hostname 来确定您的主机名。

    希望能节省一些时间!

    【讨论】:

      【解决方案4】:

      如果您同时运行 Xampp 和 MySQL Workbench,或者如果您在默认端口以外的端口上运行 Xampp,则可能会出现混淆,您可能已经使用 PHPMyAdmin 创建了数据库并且您正在尝试连接它到 localhost:cusotmport(例如 localhost:8080)。 我的建议是使用 MySQL 工作台创建您想要的数据库,然后您就可以完成任务...

      【讨论】:

        猜你喜欢
        • 2014-07-29
        • 2021-07-25
        • 2020-02-08
        • 2018-09-24
        • 2020-10-21
        • 2016-02-14
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        相关资源
        最近更新 更多