Bonjour, j'ai un problème qui va surement vous paraitre débile mais j'arrive pas à lier ma base de donnée à mon site lorsqu'il est en ligne sur mon serveur ovh.J'ai up le site (qui est fait avec cakephp 2.2), la base de donnée, je modifie le fichier database.php mais rien n'y fait. Ça fait un moment que je cherche et je trouve pas de solution à mon problème. S'il vous fait plait HELP T.T

7 réponses


On te donne quoi comme erreur ? Tu met bien mysql4.perso.ovh.net ou je ne sais quoi dans le nom d'hote ?

tekiti
Auteur

Voici le message d'erreur que j'obtiens lorsque j'essaye d'accéder à une partie du site qui nécessite la base de données (comme le fil d'actu ou l'espace membre ):

Missing Database Connection
Error: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) requires a database connection

Error: Confirm you have created the file : app/Config/database.php.

Notice: If you want to customize this error message, create app/View/Errors/missing_connection.ctp.

Stack Trace

0 /homez.548/mondatin/www/test/lib/Cake/Model/Datasource/DboSource.php(244): Mysql->connect() 1 /homez.548/mondatin/www/test/lib/Cake/Model/ConnectionManager.php(99): DboSource->__construct(Array) 2 /homez.548/mondatin/www/test/lib/Cake/Model/Model.php(3208): ConnectionManager::getDataSource('default') 3 /homez.548/mondatin/www/test/lib/Cake/Model/Model.php(1019): Model->setDataSource('default') 4 /homez.548/mondatin/www/test/lib/Cake/Model/Model.php(3232): Model->setSource('posts') 5 /homez.548/mondatin/www/test/lib/Cake/Model/Model.php(2452): Model->getDataSource() 6 /homez.548/mondatin/www/test/lib/Cake/Controller/Component/PaginatorComponent.php(171): Model->find('all', Array) 7 /homez.548/mondatin/www/test/lib/Cake/Controller/Controller.php(1026): PaginatorComponent->paginate('Post', Array, Array) 8 /homez.548/mondatin/www/test/app/Controller/PostsController.php(11): Controller->paginate('Post', Array) 9 [internal function]: PostsController->index() 10 /homez.548/mondatin/www/test/lib/Cake/Controller/Controller.php(476): ReflectionMethod->invokeArgs(Object(PostsController), Array) 11 /homez.548/mondatin/www/test/lib/Cake/Routing/Dispatcher.php(106): Controller->invokeAction(Object(CakeRequest)) 12 /homez.548/mondatin/www/test/lib/Cake/Routing/Dispatcher.php(88): Dispatcher->_invoke(Object(PostsController), Object(CakeRequest), Object(CakeResponse)) 13 /homez.548/mondatin/www/test/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse)) 14 {main}

Salut
ton fichier database.php, tu l'as modifié avec les bonnes infos?

tekiti
Auteur

Escuse moi de réponde que maintenant, j'avais quelques problemes. Pour le fichier database.php, voila ce que j'ai mis :
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => '(le login donné par ovh)',
'password' => '(le mot de passe)',
'database' => '(le nom de la base de donnée)',
'prefix' => '',
'encoding' => 'utf8',

Ton probleme vient de ton host...Il te faut quelque chose comme ceci:
'host' => 'mysql51-62.perso'
Car tu n'es plus en localhost...

;)

Je me permet de continuer ce message vu que j'ai le même soucis.

Voila mon fichier de configuration :

public $cakecnd = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'mysql51-67.perso',
        'login' => ' ********',
        'password' => ' ********',
        'database' => ' **********',
        'prefix' => '',
        'encoding' => 'utf8',
    );

Le truc bizarre, c'est que la connection marche bien pour le frontend de l'application . Je peux récupérer les news dans la base de donnée.
La où cela bloque, c'est quand je cherche à passer par la partie administration du site. Après la connexion j'ai le même message d'erreur qui apparaît.

Une idée?

ici tu as cakecnd

public $cakecnd

ca fonctionne parfaitement quand dans chaque models de ton site il y a en haut du code cette ligne

public $useDbConfig = 'cakecnd';

si elle n'y est pas cakephp essaira de se connecter à la config default qui probablement n'existe pas!
donc si tu en as pas tu as juste a faire rajouter ceci dans ton fichier database.php

public $default= array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'mysql51-67.perso',
        'login' => ' ********',
        'password' => ' ********',
        'database' => ' **********',
        'prefix' => '',
        'encoding' => 'utf8',
    );
public $cakecnd = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'mysql51-67.perso',
        'login' => ' ********',
        'password' => ' ********',
        'database' => ' **********',
        'prefix' => '',
        'encoding' => 'utf8',
    );

Ici ca fonctionne! alors tu as juste a changer ton code vers la config default