Dépannage de “No such file or directory” lors de l'exécution de `php app/console doctrine:schema:créer"
Je suis nouveau sur Symfony2 (beta4) et de la Doctrine et je rencontre des problèmes lorsque je tente de créer la DB schéma via la ligne de commande.
Voici l'erreur:
$ php app/console doctrine:schema:create
Creating database schema...
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
[ErrorException]
Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)
in /Applications/MAMP/htdocs/sf-test-2/vendor/doctrine-dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php line 36
La base de données mysql paramètres sont correctement insérés dans le fichier config/parameters.fichier ini.
Et voici la Doctrine de configuration dans le fichier config.yml
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
dbname: %database_name%
user: %database_user%
password: %database_password%
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
Et de l'entité (j'ai fait une seule pour le tester)
<?php
//src/Acme/NewsBundle/Entity/Article.php
namespace Acme\NewsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="articles")
*/
class Article
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length="255")
*/
protected $title;
/**
* @ORM\Column(type="text")
*/
protected $body;
/**
* @ORM\Column(type="string", length="255")
*/
protected $author;
/**
* @ORM\Column(type="date")
*/
protected $date;
}
?>
Vous devez vous connecter pour publier un commentaire.
Trop tard mais j'espère que cela peut aider quelqu'un.
Seulement aujourd'hui que je tombe dans une situation similaire (mais dans un autre contexte, j'ai essayé de créer des entités à partir d'db).
Je l'ai résolu simplement en modifiant de database_host de "localhost" à "127.0.0.1" dans les paramètres.fichier ini.
Je pense que mon instance Mysql exécute uniquement via TCP et pas prise et parce que lors de l'utilisation database_host="localhost" il échoue.
127.0.0.1:8889
. Espérons que cela aide quelqu'un d'autre.Essayez d'ajouter cette ligne
dans votre config.fichier yml > doctrine > dbal juste après la ligne de mot de passe.
J'ai changé 'host'=> 'localhost' à 'host'=> '127.0.0.1' sur app/config/database.php et tout fonctionne correctement
Je l'ai corrigé en suivant ce petit tutoriel: http://andreys.info/blog/2007-11-07/configuring-terminal-to-work-with-mamp-mysql-on-leopard
[EDIT]:
J'ai modifié le droit de php.ini et tout fonctionne bien maintenant.
Maintenant, je reçois l'erreur suivante:
Voici la date.le fuseau horaire de config de php.ini
Je vais essayer de me comprendre moi-même, mais si vous savez comment résoudre ce problème, n'hésitez pas à commenter cet. Merci!
Le problème pour moi était le
mysql.default_socket
réglage en PHP.INI par défaut à un endroit différent de l'endroit où MySQL se met que le fichier.Au lieu de modifier les fichiers de config, j'ai créé un alias dans l'emplacement que PHP est à la recherche qui se connecte à la vraie mysql.la chaussette.
Il suffit d'exécuter ces deux commandes (pas de redémarrage nécessaire):
Parfois, vous pouvez a plusieurs solution pour l'emplacement de mysql.verrouillage. Mais je pense que la meilleure solution est juste de voir le chemin de la localisation de mysql à l'aide de php
phpinfo()
fonction.Remarque: si vous n'êtes pas familier avec
phpinfo()
, puis il suffit de créer un fichier de donner n'importe quel nom et inclure le contenu de ce fichier comme ceciexécuter ce fichier et obtenir le chemin d'accès de mysql.fichier de verrouillage. Je pense que ça va aider.
La peine de vérifier pour voir si Mysql est en cours d'exécution trop.
Trop tard mais j'espère que ça peut aider quelqu'un d'aussi bien.
Je suis à l'aide de Vagrant
Il suffit de changer
localhost
à127.0.0.1
ET changer le port de3333
a parfaitement fonctionné.
Je pense juste redémarrer le serveur mysql, et le serveur apache, c'est de travailler pour moi.
Le redémarrage de mysql a fonctionné pour moi:
sudo /etc/init.d/mysql restart
Eu le même problème "SQLSTATE[HY000] [2002] No such file or directory" sur symfony 3.2.9 le déploiement
Je l'ai corrigé en modifiant la database_host valeur de "localhost" à mon serveur IP sur mes paramètres.fichier yml
mais j'ai eu cette autre message d'erreur lorsque vous essayez d'exécuter la ligne de commande par SSH:
[Doctrine\DBAL\Exception\ConnectionException]
Une exception s'est produite dans le pilote: SQLSTATE[HY000] [2002] Connexion refusée
J'ai enfin corrigé par l'ajout de ces 2 lignes sur ma config.fichier yml dans la Doctrine de section de configuration :
tous mes finale de la doctrine de la configuration est comme ceci:
j'espère que cela aide
Laravel .env ajouter DB_SOCKET avec chemin d'accès à mysql.chaussette
ou ajouter unix_socket AOP