【问题标题】:ERROR - Invalid data source name in ... fuelPHP migration错误 - ...fuelPHP 迁移中的数据源名称无效
【发布时间】:2012-07-17 07:35:06
【问题描述】:

我是 MAC OS 和 Fuel PHP 的新手,我尝试学习 FuelPHP,它引导我学习了一些教程,您可以在此处找到链接: link

如教程所示,通过命令行在 FuelPHP 中使用迁移:

oil r migrate

它显示了一些奇怪的错误,当我用谷歌搜索时(以及在教程中),有人建议在fuel/app/config/development/db.php 文件中将“localhost”更改为“127.0.0.1”,错误应该消失了。

然后它显示另一个错误是:

ERROR - invalid data source name in COREPATH/classes/database/pdo/connection.php on line 87

虽然我已经通过浏览器检查了与数据库的连接没问题,但连接到数据库的所有用户名和密码也是正确的。我仍然不知道是什么问题。请帮助并抱歉我的英语不是我的母语。

【问题讨论】:

  • 当我没有正确设置数据库配置时会发生这种情况。请记住,环境可能不同(这通常是我的原因)。检查石油是否在与您的站点相同的环境中运行。 php oil -v 会回显环境模式。

标签: fuelphp


【解决方案1】:

我认为您的问题实际上不是数据源名称,而是环境。

你不需要正确设置环境,在这个页面中有解释:http://fuelphp.com/docs/general/environments.html

这就是我在我的 debian 中所做的:

env FUEL_ENV=production oil refine migrate:up

以及我在 Windows 上的开发计算机中所做的事情:

set FUEL_ENV=development // One time only
oil refine migrate:up

希望对你有帮助。

【讨论】:

  • 这正是。 Fuel 抱怨数据源错误,因为它正在为不同的“环境”加载数据库配置,该环境要么未定义,要么错误的数据源。
【解决方案2】:

转到您的 Fuel/app/bootstrap.php 并检查第 27 - 30 行,它看起来像这样

Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT); 

如果是 Fuel::DEVELOPMENT,那么你应该(可能是 FUEL::PRODUCTIONFUEL::TESTING

现在根据环境检查文件中的数据库连接配置。燃料/app/config/development/db.php

在该文件中检查数据库连接,它会有点像这样,并验证它们是否正确。

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=yourdatabasename',
            'username'   => 'yourusername',
            'password'   =>  'yourpassword',
        ),
    ),
);

我认为在您的情况下,环境集和使用的配置不匹配。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2012-04-27
    相关资源
    最近更新 更多