Kohana - Database_Exception [2]:mysql_connect()2

时间:2013-10-10 06:38:12

标签: mysql database kohana kohana-3.3

我正在尝试设置我的数据库配置,如下所示:http://kowsercse.com/2011/09/04/kohana-tutorial-beginners/

我已经使用我的mysql凭据剪切并粘贴了database.php。然后我得到一个错误,我通过将文件重命名为Database.php来修复。下一个问题是,无论我投入什么,我的凭据都不会改变。 错误显示:

  

Database_Exception [2]:mysql_connect()[function.mysql-connect]:用户'ivanh'@'localhost'拒绝访问(使用密码:否)

     

MODPATH / database / classes / Kohana / Database / MySQL.php [67]

62      catch (Exception $e)
63      {
64          // No connection exists
65          $this->_connection = NULL;
66 
67          throw new Database_Exception(':error',
68              array(':error' => $e->getMessage()),
69              $e->getCode());
70      }
71 
72      // \xFF is a better delimiter, but the PHP driver uses underscore

所以无论我插入什么,用户名,主机和密码值都不会改变。 然后从以下版本复制Database.php中的代码:http://kohanaframework.org/3.3/guide/database/config 首先使用我自己的数据库值然后按原样。没有运气。

其他信息:我在共享的unix主机上创建它。 Kohana 3.1.4: Database_Exception [ 2 ]: mysql_connect(): Access denied似乎是一个没有解决方案的类似问题。

任何帮助都会很棒,谢谢。

2 个答案:

答案 0 :(得分:1)

尝试以下步骤:

第1步:

转到bootstrap.php
path-kohana \ application \ bootstrap.php
取消注释以下行以进行数据库访问     'database'=> MODPATH.'database',//数据库访问

第2步: 转到您的配置文件夹, 如果没有创建,则创建database.php文件,通过提供MySql凭证

,使用以下代码

路径:kohana \ application \ config \ database.php

注意:首先在Mysql中创建一个数据库 如果问题仍未解决,请检查您的MySql设置..可能存在错误

    <?php defined('SYSPATH') OR die('No direct access allowed.');

return array
(
    'default' =>
 array
    (
        'type'       => 'MySQL',
        'connection' => array(
            /**
             * The following options are available for MySQL:
             *
             * string   hostname     server hostname, or socket
             * string   database     database name
             * string   username     database username
             * string   password     database password
             * boolean  persistent   use persistent connections?
             * array    variables    system variables as "key => value" pairs
             *
             * Ports and sockets may be appended to the hostname.
             */
            'hostname'   => 'localhost',
            'database'   => 'CHANGE YOUR DATABASE NAME HERE',
            'username'   => 'CHANGE YOUR USER NAME HERE',
            'password'   => 'CHANGE YOUR PASSWORD HERE',
            'persistent' => FALSE,
        ),
        'table_prefix' => '',
        'charset'      => 'utf8',

    ),
    'remote' => array(
        'type'       => 'MySQL',
        'connection' => array(
            /**
             * The following options are available for PDO:
             *
             * string   dsn         Data Source Name
             * string   username    database username
             * string   password    database password
             * boolean  persistent  use persistent connections?
             */
            'dsn'        => 'mysql:host=localhost;dbname=CHANGE YOUR DATABASE NAME HERE',
            'username'   => 'CHANGE YOUR USER NAME HERE',
            'password'   => 'CHANGE YOUR PASSWORD HERE',
            'persistent' => FALSE,
        ),
        /**
         * The following extra options are available for PDO:
         *
         * string   identifier  set the escaping identifier
         */
        'table_prefix' => '',
        'charset'      => 'utf8',
        'caching'      => FALSE,
    ),
);

答案 1 :(得分:0)

我将做出以下假设:

  • 您正在编写“Database.php”,因为包含您复制的代码的APPPATH / config中的文件确实以大写字母开头。
  • 您尚未更改config reader

如果没有提供,那么来自Kohana :: $ config的数据库:: instance()将request a config array。然后,Config_File :: load()将遍历APPPATH中启用的all found /config/database.php's,启用的模块和SYSPATH。

Unix文件系统区分大小写,请注意Kohana正在寻找的小写'd'与您的大写'D'相对应。

如果您确实将其命名为“database.php”而不是“Database.php”,请单击“环境”,然后单击错误页面上的“包含文件”并确保其中包含该文件。如果不是,请做一些回溯并尝试找出事情何时停止表现,然后是为什么。

编辑:我不知道我是如何错过“将其重命名为Database.php”的部分,但这并没有解决任何问题。