IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Livres PHP Discussion :

Bloqué sur l'Exemple du livre Zend Framework avec << Access denied for user >>


Sujet :

Livres PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 120
    Points : 89
    Points
    89
    Par défaut Bloqué sur l'Exemple du livre Zend Framework avec << Access denied for user >>
    Bonjour,

    J'ai récupéré les exemples du livre Zend Framework, et j'ai créé une BDD sous Workbench SQL Server. J'ai ajouté pour finir le user zfbook avec son mot de passe et lorsque je tente d'accéder au site, j'ai l'erreur dans le catch du fichier index :

    Db_Exception :
    exception 'PDOException'
    with message 'SQLSTATE[HY000] [1045] Access denied for user 'zfbook'@'localhost' (using password: YES)'
    in C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php:129

    Stack trace:
    #0 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(129): PDO->__construct('mysql:dbname=zf...', 'zfbook', 'secretpass', Array)
    #1 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Mysql.php(109): Zend_Db_Adapter_Pdo_Abstract->_connect()
    #2 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Abstract.php(460): Zend_Db_Adapter_Pdo_Mysql->_connect()
    #3 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES 'UTF8...', Array)
    #4 C:\inetpub\wwwroot\PROJ02REF\html\index.php(110): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES 'UTF8...')
    #5 {main}

    Next exception 'Zend_Db_Adapter_Exception'
    with message 'SQLSTATE[HY000] [1045] Access denied for user 'zfbook'@'localhost' (using password: YES)'
    in C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php:144

    Stack trace:
    #0 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Mysql.php(109): Zend_Db_Adapter_Pdo_Abstract->_connect()
    #1 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Abstract.php(460): Zend_Db_Adapter_Pdo_Mysql->_connect()
    #2 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES 'UTF8...', Array)
    #3 C:\inetpub\wwwroot\PROJ02REF\html\index.php(110): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES 'UTF8...')
    #4 {main}
    Code index.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // ************************** DATABASE *******************************
     
    try {
        $db = Zend_Db::factory($configMain->database);
        $db->query("SET NAMES 'UTF8'");
     
        // Passage de la connexion Ã* toutes les classes passerelles
        Zend_Db_Table_Abstract::setDefaultAdapter($db);
    } catch (Zend_Db_Exception $e) {
        // on affiche ici le problème rencontré
        echo 'Db_Exception : '. $e; 
    }
    Je comprends bien évidement le message, mais je ne me l'explique pas car j'ai bien défini le user zfbook avec son mot de passe, comme ils sont indiqués dans le fichier config.ini

    Vous avez une piste, une idée à me suggérer ?

    Code config.ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    ;;
    ;; Configuration générale
    ;;
     
    [app]
    database.adapter         = pdo_mysql
    database.params.dbname   = zfbook
    logfile                  = /logs/log.log
    maxreservations          = 3
     
    [dev : app]
    database.params.host     = localhost
    database.params.username = zfbook
    database.params.password = secretpass
    debug                    = 1
     
    [prod : app]
    database.params.host     = my.prod.host
    database.params.username = user
    database.params.password = secretpass
     
    debug                    = 0

    Code Extentions dans le php.ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    ;extension=php_bz2.dll
    ;extension=php_curl.dll
    ;extension=php_fileinfo.dll
    ;extension=php_gd2.dll
    ;extension=php_gettext.dll
    ;extension=php_gmp.dll
    ;extension=php_intl.dll
    ;extension=php_imap.dll
    ;extension=php_interbase.dll
    ;extension=php_ldap.dll
    ;extension=php_mbstring.dll
    ;extension=php_exif.dll      ; Must be after mbstring as it depends on it
    ;extension=php_mysql.dll
    ;extension=php_mysqli.dll
    ;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
    ;extension=php_openssl.dll
    ;extension=php_pdo_firebird.dll
    extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    ;extension=php_pdo_sqlite.dll
    ;extension=php_pgsql.dll
    ;extension=php_pspell.dll
    ;extension=php_shmop.dll
    J'ai activé l'extension pour le php_pdo dans le php.ini
    "En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche."

    Les Shadocks

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 120
    Points : 89
    Points
    89
    Par défaut
    Je donne la réponse pour ceux qui pourraient rencontrer le même problème que j'ai eu :

    Le problème vient des privilèges de l'utilisateur;

    Il faut pour résoudre cela, exécuter l'utilitaire qui s'installe avec mySQLServeur et qui s'appelle MySQL Command Line Client. Là il vous demande en premier votre mot de passe mySQL et après vous devez taper la commande suivante : GRANT ALL PRIVILEGES ON zfbook.* TO 'zfbook'@'localhost' IDENTIFIED BY 'secretpass';

    Bon une fois que c'est résolu, j'ai bien sûr un autre message d'erreur, mais différent là :
    exception 'PDOException'
    with message 'SQLSTATE[HY000] [1049] Unknown database 'zfbook'' in C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php:129

    Stack trace:
    #0 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(129): PDO->__construct('mysql:dbname=zf...', 'zfbook', 'secretpass', Array)
    #1 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Mysql.php(109): Zend_Db_Adapter_Pdo_Abstract->_connect()
    #2 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Abstract.php(460): Zend_Db_Adapter_Pdo_Mysql->_connect()
    #3 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES 'UTF8...', Array)
    #4 C:\inetpub\wwwroot\PROJ02REF\html\index.php(110): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES 'UTF8...')
    #5 {main}

    Next exception 'Zend_Db_Adapter_Exception'
    with message 'SQLSTATE[HY000] [1049] Unknown database 'zfbook'' in C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php:144

    Stack trace:
    #0 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Mysql.php(109): Zend_Db_Adapter_Pdo_Abstract->_connect()
    #1 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Abstract.php(460): Zend_Db_Adapter_Pdo_Mysql->_connect()
    #2 C:\inetpub\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES 'UTF8...', Array)
    #3 C:\inetpub\wwwroot\PROJ02REF\html\index.php(110): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES 'UTF8...')
    #4 {main}
    Je laisse ce post ouvert pour ce deuxième problème que je vais essayer de résoudre. Un début de piste :
    - Toujours dans MySQL Command, show databases, suivi de use NomBase si on veut consulter la base, agir dessuis.
    Évidement, la base zfbook n'est pas présente ... et visible apparamment ...
    - Les bases que je vois sont celles qui sont installées par défaut lorsque je fais un show databases, j'ai par exemple sakila qui est dans C:\Program Files (x86)\MySQL\Samples and Examples 5.6\Sample Databases\Sakila

    - Le problème que j'ai pour l'instant c'est la localisation par SQL serveur de la base zfbook et par la suite dans l'application exemple que j'ai récupéré !
    Si vous avez des suggestions à ce sujet, je suis bien évidement preneur !
    "En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche."

    Les Shadocks

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Attention vous êtes sur une base MySQL et non SQL Server, Oracle ou autre et le notion de utilisateur/schéma est différente sur MySQL, un utilisateur est différents d'une base de donnée(schéma), qui n'est pas la même notion.

    Donc dans votre MySQL Commande line, vous devez créer la base zfbook (qui est différent de l'user, j'insiste).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE DATABASE zfbook;
    A ce moement cela fonctionnera dans votre projet PHP .

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 120
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par B-Pascal Voir le message
    Le problème que j'ai pour l'instant c'est la localisation par SQL serveur de la base zfbook ...
    Citation Envoyé par MaitrePylos Voir le message
    Attention vous êtes sur une base MySQL et non SQL Server, Oracle ou autre
    Désolé, je me suis mal exprimé ! J'ai dit SQL Serveur alors que je suis bien sur MySQL Workbench d'Oracle

    Nom : MySQLWorkbench623.png
Affichages : 375
Taille : 80,1 Ko

    Enfin cela prouve que je suis bien lu !

    Citation Envoyé par MaitrePylos Voir le message
    Donc dans votre MySQL Commande line, vous devez créer la base zfbook (qui est différent de l'user, j'insiste).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE DATABASE zfbook;
    C'est une bonne idée de créer en ligne de commande la base zfbook, comme ça je verrai où je peux la retrouver par la suite que ce soit sur mon pc et ensuite dans l'interface d'Oracle.
    Je vais explorer cette piste !
    "En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche."

    Les Shadocks

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Attention, voici quelque notion :

    MySQL Server = le server de base de donnée qui devrait être installé sur votre machine.
    MySQL line commande = qui est une série d'outils interférant avec le serveur MySQL (hé oui il porte le même nom).
    MySQL Workbench : lui c'est une interface graphique (comme PHPMyAdmin) pour interagir avec le serveur de base de données MySQL.


    Il est donc possible de créer une base de donnée 'zfbook', avec l'outil MySQL Workbench.

    Je sais au tout début c'est un peur déconcertant, mais cela va venir

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 120
    Points : 89
    Points
    89
    Par défaut
    Voilà ça marche maintenant ! En créant une base de données (en ligne de commande), j'ai vu que le dossier par défaut était créé dans C:\ProgramData\MySQL\MySQL Server 5.6\data\zfbook

    Après j'ai déplacé la base que j'avais mis par défaut dans mon projet\data\zfbook et là j'avance ... il passe sur les tables ... et j'arrive au message d'erreur suivant qui est normal car je n'avais pas encore créé la vue reservation_list.

    Je clos le sujet, merci.
    "En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche."

    Les Shadocks

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 14/01/2015, 17h56
  2. Zend Framework Bien développer en PHP
    Par fadex dans le forum Livres
    Réponses: 33
    Dernier message: 22/04/2012, 11h12
  3. Créer une API sur la base du PHP (Zend Framework)
    Par Jonathan.b dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2009, 12h15
  4. Réponses: 2
    Dernier message: 03/01/2009, 00h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo