Kohana PHP框架MySQL数据库连接异常
我用Kohana PHP框架3.1.3.1版创建了一个网站。该站点已在生产中运行良好。一年后我又回到了它,并尝试设置本地实例,因为我需要对其进行一些更新 由于某些原因,我在浏览器中不断遇到以下异常:Kohana PHP框架MySQL数据库连接异常,php,mysql,linux,database,kohana,Php,Mysql,Linux,Database,Kohana,我用Kohana PHP框架3.1.3.1版创建了一个网站。该站点已在生产中运行良好。一年后我又回到了它,并尝试设置本地实例,因为我需要对其进行一些更新 由于某些原因,我在浏览器中不断遇到以下异常: Database_Exception [ 0 ]: MODPATH/database/classes/kohana/database/mysql.php [ 67 ] 62 catch (ErrorException $e) 63 { 64 // No conn
Database_Exception [ 0 ]:
MODPATH/database/classes/kohana/database/mysql.php [ 67 ]
62 catch (ErrorException $e)
63 {
64 // No connection exists
65 $this->_connection = NULL;
66
67 throw new Database_Exception(':error',
68 array(':error' => mysql_error()),
69 mysql_errno());
70 }
71
72 // \xFF is a better delimiter, but the PHP driver uses underscore
MODPATH/database/classes/kohana/database/mysql.php [ 158 ] » Kohana_Database_MySQL->connect()
MODPATH/database/classes/kohana/database/mysql.php [ 347 ] » Kohana_Database_MySQL->query(arguments)
MODPATH/orm/classes/kohana/orm.php [ 1551 ] » Kohana_Database_MySQL->list_columns(arguments)
MODPATH/orm/classes/kohana/orm.php [ 439 ] » Kohana_ORM->list_columns(arguments)
MODPATH/orm/classes/kohana/orm.php [ 386 ] » Kohana_ORM->reload_columns()
MODPATH/orm/classes/kohana/orm.php [ 300 ] » Kohana_ORM->_initialize()
MODPATH/orm/classes/kohana/orm.php [ 109 ] » Kohana_ORM->__construct(arguments)
APPPATH/classes/controller/index.php [ 20 ] » Kohana_ORM::factory(arguments)
{PHP internal call} » Controller_Index->action_index()
SYSPATH/classes/kohana/request/client/internal.php [ 132 ] » ReflectionMethod->invokeArgs(arguments)
SYSPATH/classes/kohana/request.php [ 1129 ] » Kohana_Request_Client_Internal->execute(arguments)
DOCROOT/index.php [ 109 ] » Kohana_Request->execute()
没有附加有用的调试信息。与数据库本身的连接似乎正常工作,因为我在故意提供无效凭据时确实遇到了特定的异常:
Database_Exception [ 1045 ]: Access denied for user 'root'@'localhost' (using password: YES)
这是database.php的摘录
'默认'=>数组
'type'=>'mysql',
'连接'=>阵列
/**
*MySQL提供以下选项:
*
*字符串主机名服务器主机名或套接字
*字符串数据库名称
*字符串用户名数据库用户名
*字符串密码数据库密码
*布尔持久性使用持久性连接?
*
*端口和套接字可以附加到主机名。
*/
“主机名”=>“127.0.0.1”,
'数据库'=>'数据库名称',
'用户名'=>'根',
“密码”=>,
'persistent'=>FALSE,
,
“表_前缀”=>,
“字符集”=>“utf8”,
“缓存”=>FALSE,
“分析”=>正确,
我发现,当我为某个无效字符串更改“数据库”键时,异常
保持不变。Kohana是否可能连接到MySQL服务器,但无法访问任何数据库
为了测试它,我尝试使用mysqli在Kohana应用程序和var_转储一些基本查询结果中执行简单脚本。它可以连接到数据库并列出所有表,因此kohana的ORM模块尝试与数据库通信的方式似乎有点滑稽
我在一年前就习惯在Windows下工作。。除了我现在使用Ubuntu14.04切换到linux之外,我现在不知道出了什么问题。我正在使用XAMP for linux xampp-linux-x64-1.8.3-4-installer.run来运行apache、php和mysql
非常感谢您的帮助 如果你的根帐户没有密码,正确的语法是
'password' => FALSE,
那么它还在生产中吗?生产系统上有什么操作系统?您是否检查了linux系统上的文件权限?是的,它正在生产中运行。不完全确定在什么操作系统下运行,但这似乎无关紧要,因为我现在也尝试在Windows下本地设置Web应用程序,但遇到了相同的问题:-你可以尝试在中调试数据库连接,也许你会发现一些错误。当然,你直截了当的建议确实有帮助,我现在感到很惭愧!在删除异常处理程序块后,我可以看到实际的错误——我的版本中的Kohana框架使用的仍然是mysql驱动程序,而不是mysqli。问题是,由于PHP 5.5.0 mysql不再受支持,这就是为什么它神秘地停止工作的原因——我只是使用了最新的PHP,现在它与框架不兼容。这有望在Kohana的未来3.4版本中得到解决。。