我正在尝试设置我的数据库配置,如下所示: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似乎是一个没有解决方案的类似问题。
任何帮助都会很棒,谢谢。
答案 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)
我将做出以下假设:
如果没有提供,那么来自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”的部分,但这并没有解决任何问题。