Missing Database Connection
Error:
A Database connection using "Mysql" was missing or unable to connect.
The database server returned this error: SQLSTATE[HY000] [1040] Too many connections
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()
));
}
if ($autoConnect) {
$this->connect();
}
- CORE/Cake/Model/ConnectionManager.php line 105 → DboSource->__construct(array)
'message' => 'Datasource is not found in Model/Datasource package.'
));
}
self::$_dataSources[$name] = new $class(self::$config->{$name});
self::$_dataSources[$name]->configKeyName = $name;
array(
'password' => '*****',
'login' => '*****',
'host' => '*****',
'database' => '*****',
'prefix' => '*****',
'datasource' => 'Database/Mysql',
'persistent' => false
)
- CORE/Cake/Model/Model.php line 3477 → ConnectionManager::getDataSource(string)
$this->useDbConfig = $dataSource;
}
$db = ConnectionManager::getDataSource($this->useDbConfig);
if (!empty($oldConfig) && isset($db->config['prefix'])) {
- CORE/Cake/Model/Model.php line 1126 → Model->setDataSource(string)
* @return void
*/
public function setSource($tableName) {
$this->setDataSource($this->useDbConfig);
$db = ConnectionManager::getDataSource($this->useDbConfig);
- CORE/Cake/Model/Model.php line 3499 → Model->setSource(string)
public function getDataSource() {
if (!$this->_sourceConfigured && $this->useTable !== false) {
$this->_sourceConfigured = true;
$this->setSource($this->useTable);
}
- CORE/Cake/Model/Model.php line 3306 → Model->getDataSource()
*/
public function query($sql) {
$params = func_get_args();
$db = $this->getDataSource();
return call_user_func_array(array(&$db, 'query'), $params);
- APP/Model/PerformerUser.php line 101 → Model->query(string)
// fd_performer_users AND `kweather_Shared`.`users` LEFT JOIN `akiba`.`images`
// Test OK
function getAllNodeAndUserAndImage() {
$this->query("SET NAMES utf8");
$data = $this->query("SELECT * FROM (SELECT pu.user_id, pu.nodeid, pu.status, pu.lastlogin, us.username FROM kwjchat_db.fd_performer_users AS pu, {$this->useUserDbName}.users AS us WHERE pu.user_id = us.id) AS PerformerUser LEFT JOIN (SELECT * FROM akiba.images AS Img, (SELECT foreign_key AS fkey2, MIN(id) AS id2, MIN(sortorder) AS sortorder2 FROM akiba.images GROUP BY foreign_key) AS Img2 WHERE Img.model = 'Girl' AND Img.foreign_key = Img2.fkey2 AND Img.id = Img2.id2 AND Img.sortorder = Img2.sortorder2) AS Image ON PerformerUser.user_id = Image.foreign_key");
- APP/Controller/PerformersController.php line 39 → PerformerUser->getAllNodeAndUserAndImage()
}
function home(){
$userdata = $this->PerformerUser->getAllNodeAndUserAndImage();
$this->set(compact('userdata'));
- [internal function] → PerformersController->home()
- CORE/Cake/Controller/Controller.php line 490 → ReflectionMethod->invokeArgs(PerformersController, array)
'action' => $request->params['action']
));
}
return $method->invokeArgs($this, $request->params['pass']);
object(PerformersController) {
name => 'Performers'
uses => array(
[maximum depth reached]
)
paginate => array(
[maximum depth reached]
)
helpers => array(
[maximum depth reached]
)
components => array(
[maximum depth reached]
)
dispatchComponents => array([maximum depth reached])
request => object(CakeRequest) {}
response => object(CakeResponse) {}
viewPath => 'Performers'
layoutPath => null
viewVars => array([maximum depth reached])
view => 'home'
layout => 'default'
autoRender => true
autoLayout => true
Components => object(ComponentCollection) {}
viewClass => 'View'
View => null
ext => '.ctp'
plugin => null
cacheAction => false
passedArgs => array([maximum depth reached])
scaffold => false
methods => array(
[maximum depth reached]
)
modelClass => 'PerformerUser'
modelKey => 'performer'
validationErrors => null
Toolbar => object(ToolbarComponent) {}
Auth => object(ExtendedAuthComponent) {}
RememberMe => object(RememberMeComponent) {}
Session => object(SessionComponent) {}
PerformerUser => object(PerformerUser) {}
[protected] _responseClass => 'CakeResponse'
[protected] _mergeParent => 'AppController'
[protected] _eventManager => object(CakeEventManager) {}
}
array()
- APP/Controller/AppController.php line 143 → Controller->invokeAction(CakeRequest)
*/
public function invokeAction(CakeRequest $request) {
try {
return parent::invokeAction($request);
} catch (MissingActionException $e) {
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array([maximum depth reached])
url => 'performers/home'
base => ''
webroot => '/'
here => '/performers/home'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
- CORE/Cake/Routing/Dispatcher.php line 185 → AppController->invokeAction(CakeRequest)
$controller->startupProcess();
$render = true;
$result = $controller->invokeAction($request);
if ($result instanceof CakeResponse) {
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array([maximum depth reached])
url => 'performers/home'
base => ''
webroot => '/'
here => '/performers/home'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
- CORE/Cake/Routing/Dispatcher.php line 160 → Dispatcher->_invoke(PerformersController, CakeRequest, CakeResponse)
));
}
$response = $this->_invoke($controller, $request, $response);
if (isset($request->params['return'])) {
object(PerformersController) {
name => 'Performers'
uses => array(
[maximum depth reached]
)
paginate => array(
[maximum depth reached]
)
helpers => array(
[maximum depth reached]
)
components => array(
[maximum depth reached]
)
dispatchComponents => array([maximum depth reached])
request => object(CakeRequest) {}
response => object(CakeResponse) {}
viewPath => 'Performers'
layoutPath => null
viewVars => array([maximum depth reached])
view => 'home'
layout => 'default'
autoRender => true
autoLayout => true
Components => object(ComponentCollection) {}
viewClass => 'View'
View => null
ext => '.ctp'
plugin => null
cacheAction => false
passedArgs => array([maximum depth reached])
scaffold => false
methods => array(
[maximum depth reached]
)
modelClass => 'PerformerUser'
modelKey => 'performer'
validationErrors => null
Toolbar => object(ToolbarComponent) {}
Auth => object(ExtendedAuthComponent) {}
RememberMe => object(RememberMeComponent) {}
Session => object(SessionComponent) {}
PerformerUser => object(PerformerUser) {}
[protected] _responseClass => 'CakeResponse'
[protected] _mergeParent => 'AppController'
[protected] _eventManager => object(CakeEventManager) {}
}
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array([maximum depth reached])
url => 'performers/home'
base => ''
webroot => '/'
here => '/performers/home'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
object(CakeResponse) {
[protected] _statusCodes => array(
[maximum depth reached]
)
[protected] _mimeTypes => array(
[maximum depth reached]
)
[protected] _protocol => 'HTTP/1.1'
[protected] _status => (int) 200
[protected] _contentType => 'text/html'
[protected] _headers => array([maximum depth reached])
[protected] _body => null
[protected] _file => null
[protected] _fileRange => null
[protected] _charset => 'UTF-8'
[protected] _cacheDirectives => array([maximum depth reached])
[protected] _cookies => array([maximum depth reached])
}
- APP/webroot/index.php line 108 → Dispatcher->dispatch(CakeRequest, CakeResponse)
$Dispatcher->dispatch(
new CakeRequest(),
new CakeResponse()
);
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array([maximum depth reached])
url => 'performers/home'
base => ''
webroot => '/'
here => '/performers/home'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
object(CakeResponse) {
[protected] _statusCodes => array(
[maximum depth reached]
)
[protected] _mimeTypes => array(
[maximum depth reached]
)
[protected] _protocol => 'HTTP/1.1'
[protected] _status => (int) 200
[protected] _contentType => 'text/html'
[protected] _headers => array([maximum depth reached])
[protected] _body => null
[protected] _file => null
[protected] _fileRange => null
[protected] _charset => 'UTF-8'
[protected] _cacheDirectives => array([maximum depth reached])
[protected] _cookies => array([maximum depth reached])
}