maxougl Posté(e) le 14 juin 2017 Partager Posté(e) le 14 juin 2017 Bonjour, Je fais appel à vous suite à de très nombreux jours de recherche sans succès... Je n'arrive pas à me connecter à la base de données de prod. J'ai un fichier parameters.yml avec mes identifiants de prod et de dev : parameters: database_host: localhost database_port: 8889 database_name: contratloctool database_user: root database_password: root mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: null mailer_password: null secret: xxxx database_host_prod: localhost database_port_prod: 3306 database_name_prod: contratloctool database_user_prod: root database_password_prod: xxxx Dans mon config.yml j'ai : # Doctrine Configuration doctrine: dbal: default_connection: default connections: default: driver: pdo_mysql host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 unix_socket: /tmp/mysql.sock prod: driver: pdo_mysql host: "%database_host_prod%" port: "%database_port_prod%" dbname: "%database_name_prod%" user: "%database_user_prod%" password: "%database_password_prod%" charset: UTF8 unix_socket: /tmp/mysql.sock En réalité je ne sais pas vraiment quels identifiants mettre (ceux de MariaDB ? de l'utilisateur ? ... de même, quel est le "host" à renseigner en prod ? le nom du Synology ? Il y a très peu de docs à ce sujet malheureusement et c'est pas très clair ... Quand je veux faire un php bin/console doctrine:schema:create -e prod par exemple, j'ai une belle erreur avec la trace associée : [Doctrine\DBAL\Exception\ConnectionException] An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused Exception trace: () at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:103 Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:145 Doctrine\DBAL\DBALException::driverException() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47 Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360 Doctrine\DBAL\Connection->connect() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429 Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389 Doctrine\DBAL\Connection->detectDatabasePlatform() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328 Doctrine\DBAL\Connection->getDatabasePlatform() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763 Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616 Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174 Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78 Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:59 Doctrine\ORM\Tools\Console\Command\SchemaTool\AbstractCommand->execute() at /volume1/Web/contratloctool/sources/v0.3/vendor/doctrine/doctrine-bundle/Command/Proxy/CreateSchemaDoctrineCommand.php:51 Doctrine\Bundle\DoctrineBundle\Command\Proxy\CreateSchemaDoctrineCommand->execute() at /volume1/Web/contratloctool/sources/v0.3/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:262 Symfony\Component\Console\Command\Command->run() at /volume1/Web/contratloctool/sources/v0.3/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:848 Symfony\Component\Console\Application->doRunCommand() at /volume1/Web/contratloctool/sources/v0.3/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:190 Symfony\Component\Console\Application->doRun() at /volume1/Web/contratloctool/sources/v0.3/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:80 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /volume1/Web/contratloctool/sources/v0.3/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:121 Symfony\Component\Console\Application->run() at /volume1/Web/contratloctool/sources/v0.3/bin/console:29 MERCI d'avoir pris le temps de lire et de m'aider, je suis dans l'impasse la plus totale :( Bonne soirée Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 14 juin 2017 Partager Posté(e) le 14 juin 2017 Tu dois utiliser les identifiants du compte que tu as créé dans la base de données, si tu n'as pas créé de compte et de base pour ton appli (c'est mal), tu peux utiliser le compte root avec le mot de passe que tu as renseigné en installant le paquet mariadb. Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 25 juin 2017 Auteur Partager Posté(e) le 25 juin 2017 Salut Fenrir ! Merci de ta réponse rapide, la mienne l'était un peu moins (je n'ai pas reçu de mail de notif je sais pas pourquoi :) ) Justement, j'en ai créé plusieurs d'utilisateurs, mais je ne sais pas forcément quoi mettre en nom d'hôte ... Comment dire que le serveur est le NAS lui-même ? et quand je me connecte avec cet utilisateur, dois je mettre par ex root@mon-hote dans le formulaire de connexion ? Merci beaucoup ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 25 juin 2017 Partager Posté(e) le 25 juin 2017 localhost Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 25 juin 2017 Auteur Partager Posté(e) le 25 juin 2017 Ca ne marche toujours pas. Voici mon parameters.yml : database_host_prod: localhost database_port_prod: null database_name_prod: contratloctool database_user_prod: root database_password_prod: null Et je lance cette commande dans ma console (en utilisateur root ou mon propre user) : php56 bin/console doctrine:schema:create --dump-sql -e prod Et mon erreur : [Doctrine\DBAL\Exception\ConnectionException] An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 25 juin 2017 Partager Posté(e) le 25 juin 2017 Je ne pense pas que le mot de passe soit vide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 26 juin 2017 Auteur Partager Posté(e) le 26 juin 2017 Toujours le même problème, avec un utilisateur, un mot de passe, et localhost comme "host"... je les ai renseigné dans le parameters.yml La base est créée dans PHPMyAdmin, faut-il y créer aussi les tables ? Lorsque je lance ma commande de création : php56 bin/console doctrine:schema:create --dump-sql -e prod j'ai encore et toujours le même problème... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 26 juin 2017 Partager Posté(e) le 26 juin 2017 test avec ça : https://gist.github.com/chales/11359952 Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 26 juin 2017 Auteur Partager Posté(e) le 26 juin 2017 J'arrive à afficher "There are no tables" à la fois dans le terminal, ainsi que dans le navigateur J'ai rajouté des options dans config.yml (il manquait les entity manager, suite au rajout d'une connection) : # Doctrine Configuration doctrine: dbal: default_connection: default connections: default: driver: pdo_mysql host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 unix_socket: /tmp/mysql.sock prod: driver: pdo_mysql host: "%database_host_prod%" port: "%database_port_prod%" dbname: "%database_name_prod%" user: "%database_user_prod%" password: "%database_password_prod%" charset: UTF8 unix_socket: /tmp/mysql.sock # if using pdo_sqlite as your database driver: # 1. add the path in parameters.yml # e.g. database_path: "%kernel.root_dir%/data/data.db3" # 2. Uncomment database_path in parameters.yml.dist # 3. Uncomment next line: # path: "%database_path%" #orm: #auto_generate_proxy_classes: "%kernel.debug%" #naming_strategy: doctrine.orm.naming_strategy.underscore #auto_mapping: true orm: default_entity_manager: default entity_managers: default: connection: default mappings: AppBundle: ~ ContratBundle: ~ LocataireBundle: ~ UserBundle: ~ prod: connection: prod mappings: AppBundle: ~ ContratBundle: ~ LocataireBundle: ~ UserBundle: ~ Et lors de cette commande php56 bin/console doctrine:database:create --connection prod , j'ai ce soucis : An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory Toujours bloqué donc... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 26 juin 2017 Partager Posté(e) le 26 juin 2017 Ça veut dire que la base existe, les identifiants sont bon, la connexion est ok. Le problème vient donc de ton code ou de l’initialisation de la base, il faut que tu demandes au développeur de l'appli. Essaye de mettre ça en commentaire Le 14/06/2017 à 19:29, maxougl a dit : unix_socket: /tmp/mysql.sock Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 26 juin 2017 Auteur Partager Posté(e) le 26 juin 2017 C'est moi le développeur de l'appli ;-) En fait j'ai une appli SF3, qui marche en dev et que je veux faire tourner en prod sur mon NAS J'ai mis ça en commentaire, j'ai l'erreur : An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) Pourtant les identifiants sont bons comme tu dis Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 26 juin 2017 Partager Posté(e) le 26 juin 2017 il y a une heure, maxougl a dit : C'est moi le développeur de l'appli ;-) curieux alors de demander : Il y a 4 heures, maxougl a dit : faut-il y créer aussi les tables ? Si c'est ton code tu devrais le savoir ... BTW, c'est peut être un souci avec la création de ton objet (tu sembles utiliser PDO), essaye ça : <?php $dbname = 'DB'; $dbuser = 'LOGIN'; $dbpass = 'PASS'; $dbhost = 'localhost'; try { $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); foreach($dbh->query("SHOW TABLES FROM $dbname") as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "Erreur : " . $e->getMessage() . "<br/>"; die(); } ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 26 juin 2017 Auteur Partager Posté(e) le 26 juin 2017 Bah ouais mais mon code je le connais c'est pas le problème, le soucis c'est la mise en prod de SF sur un Synology et ça y'a très peu de docs dessus :/ C'est en faisant un doctrine:schema:create que j'ai ces problèmes donc bon... Et le fichier, bah tout marche bien, mais je n'ai pas de tables (ce que le schema create devrait faire) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 26 juin 2017 Partager Posté(e) le 26 juin 2017 Je n'ai jamais utilisé symfony (de manière générale je n'utilise aucun framework, c'est souvent contre productif, surtout qu'ici tu en empiles 2 si on compte l'orm), mais ton erreur semble "courante", une petite recherche sur le net te sort pas mal de résultats : https://duckduckgo.com/?q=doctrine+An+exception+occured+in+driver%3A+SQLSTATE[HY000]+[1045]+Access+denied&t=ffcm&ia=qa Je ne vais pas pouvoir t'aider plus et ça sort complétement du cadre de ce forum, tu devrais aller voir par ici : https://stackoverflow.com/questions/tagged/symfony Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 27 juin 2017 Auteur Partager Posté(e) le 27 juin 2017 Ca marche, merci ! Ouais, en fait c'est surtout que Synology (je trouve) est pas vraiment fait pour y mettre du web un peu poussé, les versions de PHP sont pas simples à gérer, la commande pour redémarrer le serveur Apache, MySql ou autre change sans cesse (il suffit de voir les forums) et la doc Synology sur ce sujet est inexistante (ça fait des mois que je cherche à mettre en ligne cette appli...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
PiwiLAbruti Posté(e) le 27 juin 2017 Partager Posté(e) le 27 juin 2017 il y a 11 minutes, maxougl a dit : Ca marche, merci ! Où est-ce que ça coinçait alors ? Il y a 13 heures, maxougl a dit : unix_socket: /tmp/mysql.sock Il faut savoir d'avec PDO, le fait d'indiquer localhost comme hôte MySQL force l'utilisation du socket Unix. Je ne sais pas s'il en est de même pour les autres extensions mysql de PHP (mysql et mysqli). Citation When the host name is set to "localhost", then the connection to the server is made thru a domain socket. Source : http://php.net/manual/en/ref.pdo-mysql.connection.php Dans tous les cas, sur un NAS Synology ce socket se situe dans /run/mysqld/mysqld.sock (pour l'instant). Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 27 juin 2017 Auteur Partager Posté(e) le 27 juin 2017 Il y a 9 heures, PiwiLAbruti a dit : Où est-ce que ça coinçait alors ? Ca coince toujours, mon problème n'est pas résolu :) Mon "ca marche", c'était dans le sens "merci" ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 27 juin 2017 Partager Posté(e) le 27 juin 2017 Essaye tout de même avec l'info de @PiwiLAbruti, spécifie le chemin du socket. Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxougl Posté(e) le 27 juin 2017 Auteur Partager Posté(e) le 27 juin 2017 il y a 39 minutes, Fenrir a dit : Essaye tout de même avec l'info de @PiwiLAbruti, spécifie le chemin du socket. J'ai essayé justement, aucun changement (mais je garde cette idée en tête) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.