我通常在带有wamp的localhost中完成了我的网站,它就是内联上传的时刻。
我使用了Cakephp 2,其安全组件阻止了所有网站。所以我必须先登录我,然后直接进入应用程序。 我已经将我的数据库上传到我的网络服务器上的phpmyadmin(OVH - Perso offer,所以没有ssh可用)。 我已经使用我的数据库信息配置了database.php文件。我很确定,那就是那个,因为它和我的主网站一样(因为这个应用程序是我用Cakephp开发的网站根目录下的文件夹)。
乍一看,当我尝试访问我的网站时,我收到此错误消息,我不知道为什么......:
Missing Database Connection
Error: A Database connection using "Mysql" was missing or unable to connect.
The database server returned this error: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' (2)
Notice: If you want to customize this error message, create app/View/Errors/missing_connection.ctp
Stack Trace
CORE/Cake/Model/Datasource/DboSource.php line 260 → Mysql->connect()
CORE/Cake/Model/ConnectionManager.php line 105 → DboSource->__construct(array)
CORE/Cake/Model/Model.php line 3482 → ConnectionManager::getDataSource(string)
CORE/Cake/Model/Model.php line 1128 → Model->setDataSource(string)
CORE/Cake/Model/Model.php line 3504 → Model->setSource(string)
CORE/Cake/Model/Model.php line 1357 → Model->getDataSource()
CORE/Cake/View/Helper/FormHelper.php line 215 → Model->schema()
CORE/Cake/View/Helper/FormHelper.php line 468 → FormHelper->_introspectModel(string, string)
APP/View/Layouts/login.ctp line 30 → FormHelper->create(string)
CORE/Cake/View/View.php line 948 → include(string)
CORE/Cake/View/View.php line 910 → View->_evaluate(string, array)
CORE/Cake/View/View.php line 542 → View->_render(string)
CORE/Cake/View/View.php line 479 → View->renderLayout(string, string)
CORE/Cake/Controller/Controller.php line 954 → View->render(null, null)
CORE/Cake/Routing/Dispatcher.php line 198 → Controller->render()
CORE/Cake/Routing/Dispatcher.php line 165 → Dispatcher->_invoke(UsersController, CakeRequest)
APP/webroot/index.php line 108 → Dispatcher->dispatch(CakeRequest, CakeResponse)
我的database.php文件:
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'prolity',
'prefix' => '',
//'encoding' => 'utf8',
);
public $ovh = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => '***',
'login' => '***',
'password' => '***',
'database' => '***',
'prefix' => '',
'encoding' => 'utf8',
);
}
我只使用$ ovh,并且在bootstrap.php中选择得很好。 我甚至试图把
'unix_socket'=> '/Applications/MAMP/tmp/mysql/mysql.sock'
但这是一回事。
我已经全部接受过审核,一切似乎都是正确的。 谷歌没有帮助我,我转向你,因为我没有任何其他想法。
我可以给你链接内联,但我认为这不是必要的。
谢谢你的帮助,
Etix。
答案 0 :(得分:1)
上传到服务器后是否更新了数据库配置?基于错误消息,我认为不是。
Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'
我确实怀疑OVH服务器会使用XAMPP。
答案 1 :(得分:0)
问题是使用其他数据库的声明不在正确的位置。 OP在bootstrap.php中使用了这一行
Cache::config('default', array('engine' => 'File'));
尝试更改使用的数据库。该行用于缓存文件,因此它无法通过数据库设置。要告诉模型使用其他数据库(default
除外),您需要更改model attribute并执行
class Example extends AppModel {
public $useDbConfig = 'ovh';
}
这仅适用于一个模型,但如果您想为整个应用程序执行此操作,则可以将该行添加到AppModel
class AppModel extends Model{
public $useDbConfig = 'ovh';
}
(当然,不会在其他模型中覆盖它)。