【问题标题】:Kohana - Database_Exception [ 2 ]: mysql_connect()Kohana - Database_Exception [ 2 ]: mysql_connect()
【发布时间】:2012-05-13 21:10:31
【问题描述】:

我正在运行 Kohana v3.2 我只是想用一个小型 MVC 启动并运行,并被推荐使用这个系统。我正在关注本教程:http://kowsercse.com/2011/09/04/kohana-tutorial-beginners/

在我进入添加新文章部分之前,一切似乎都很顺利,我创建了文件,但是当我将浏览器指向文章/新控制器/操作时,我收到了以下错误:

Database_Exception [ 2 ]: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'ODBC'@'localhost' (using password: NO)

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

我对 PHP 还是很陌生,对 Kohana 还是很陌生,但是从错误中猜测 ORM 正在尝试使用用户名 ODBC 访问我的数据库,但我还没有在我创建的页面/文件中的任何地方定义它,这是我所在的 database.php 配置:application/config

<?php defined('SYSPATH') or die('No direct script access.');

return array
(
    'default' => array
    (
        'type'          => 'mysql',
        'connetion'     => array
        (
            'hostname'      => '127.0.0.1',
            'database'      => 'kohana_blog',
            'username'      => 'root',
            'password'      => '',
            'persistent'    => FALSE,
        ),
        'table_prefix'  => '',
        'charset'       => 'UTF8',
        'caching'       => FALSE,
        'profiling'     => TRUE,
    )
);

任何想法都会很棒谢谢你:)

【问题讨论】:

  • 同一台电脑上是否安装了其他php+mysql应用程序?它们工作正常吗?
  • 您在配置文件中有错字:“连接”。无论如何,为什么 DB 尝试与 ODBC 用户连接?
  • 也许你有一些奇怪的 php/mysql.ini 文件设置?
  • 同意。您将“root”指定为用户名,因此不应使用 ODBC 作为用户名。这很可能是因为您的拼写错误。它无法在您的文件中找到“连接”键,因此它可能正在使用系统默认的 database.php

标签: php kohana kohana-3 kohana-orm


【解决方案1】:

我想你已经安装了ODBC/Connector - 它是一个数据库驱动程序,它创建自己 (ODBC) 作为默认用户。因为你没有在你的配置中指定一个用户(你没有,因为你有一个错字;))它默认尝试连接ODBC

如果您更正了数据库配置文件的第 8 行,那么一切都应该开始正常工作了。

...

'type'          => 'mysql',
'connection'     => array
(
        'hostname'      => '127.0.0.1',
...

哦,除非你的 hosts 文件设置得很奇怪;您应该能够使用localhost 而不是127.0.0.1 - 并不是说​​有任何区别(除了localhost 无论您使用的是IPv4 还是IPv6 都可以工作),它可能更容易阅读/类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多