Rozwiązywanie problemów z "brak takiego pliku lub katalogu" podczas uruchamiania "PHP app / console doctrine: schema: create"

Jestem nowy w Symfony2 (beta4) i Doctrine i mam problemy, gdy próbuję utworzyć schemat DB za pomocą linii poleceń.

Oto błąd:

$ 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

Ustawienia bazy danych mysql są poprawnie wstawione w konfiguracji / parametry.plik ini.

A oto Konfiguracja doktryny w 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

I byt (zrobiłem tylko jeden, aby go przetestować)

<?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;
}
?>
Author: LBridge, 2011-06-07

12 answers

Za późno, ale mam nadzieję, że może komuś pomóc.

Właśnie dzisiaj wpadłem w podobną sytuację (ale w innym kontekście próbowałem tworzyć encje z db).

Rozwiązałem to po prostu modyfikując de database_host z "localhost" do "127.0.0.1" w parametrach.plik ini.

Myślę, że moja instancja Mysql działa tylko przez TCP, a nie socket, a ponieważ to przy użyciu database_host= "localhost" nie działa.

 166
Author: EricSonaron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-28 22:17:13

Spróbuj dodać tę linię

unix_socket: /tmp/mysql.sock

Do twojej konfiguracji.plik yml > doctrine > dbal tuż po linii hasła.

 19
Author: Saperlipopette,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-07 08:06:29

Zmieniłem 'host' =>' localhost 'NA' host '= > '127.0.0.1' w app/config/database.php i wszystko działa poprawnie

 11
Author: victormfv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-20 18:34:00

Naprawiłem to, wykonując ten mały tutorial: http://andreys.info/blog/2007-11-07/configuring-terminal-to-work-with-mamp-mysql-on-leopard

[edytuj]: Zmodyfikowałem właściwe php.ini i wszystko działa dobrze.

Teraz dostaję następujący błąd:

[Exception]                                                                                            
 DateTime::__construct(): It is not safe to rely on the system's timezone settings.
 You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
 In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
 We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead 
Oto Data.konfiguracja strefy czasowej w php.ini
date.timezone = "Europe/Paris"

Postaram się sam to rozgryźć, ale jeśli ktoś z was wie, jak to naprawić, nie wahaj się skomentować tego. Dzięki!

 5
Author: LBridge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-07 17:53:06

Problemem dla mnie było ustawienie mysql.default_socket w PHP.Domyślna lokalizacja INI jest inna niż lokalizacja, w której MySQL umieszcza ten plik.

Zamiast edytować pliki konfiguracyjne, utworzyłem alias w lokalizacji, której szuka PHP, który łączy się z prawdziwym mysql.sock.

Po prostu uruchom te dwie komendy (nie trzeba restartować):

mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
 2
Author: Justin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-18 03:25:55

Czasami możesz mieć kilka rozwiązań dla ścieżki lokalizacji mysql.zamek. Ale myślę, że najlepszym rozwiązaniem jest po prostu zobaczyć ścieżkę lokalizacji mysql za pomocą funkcji php phpinfo().

Uwaga: Jeśli nie jesteś zaznajomiony z phpinfo(), to po prostu utwórz plik podaj dowolną nazwę i dołącz zawartość tego pliku w ten sposób

<?php
phpinfo();
?>

Uruchom ten plik i pobierz ścieżkę mysql.Zablokuj plik. Myślę, że to pomoże.

 0
Author: Mehedi Hasan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-07 12:43:05

Warto sprawdzić czy Mysql też działa.

 0
Author: Isaac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 00:50:25

Za późno, ale mam nadzieję, że może komuś pomóc.

Używam Vagrant

Wystarczy zmienić localhost na 127.0.0.1 I zmienić port na 3333

Zadziałało idealnie.
 0
Author: Fabio Valencio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-05 20:13:35

Myślę, że wystarczy zrestartować mysql, a apache, to dla mnie działa.

 0
Author: Reyno D'Wolfer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 02:25:26

RESTART mysql zadziałał dla mnie:

sudo /etc/init.d/mysql restart

 0
Author: Geoffrey Hale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-05 06:11:33

Miał ten sam problem "SQLSTATE [HY000] [2002] No such file or directory" w symfony 3.2.9 przy deployment

Naprawiłem to zmieniając wartość database_host z "localhost" na mój adres IP serwera na moich parametrach.plik yml

Ale miałem inny komunikat o błędzie podczas próby uruchomienia linii poleceń przez SSH:

[Doctrine\DBAL\Exception\ConnectionException] W sterowniku pojawił się wyjątek: SQLSTATE[HY000] [2002] Connection refused

I ostatecznie naprawić dodając te 2 linie na mój config.plik yml w sekcji Konfiguracja doktryny:

unix_socket: /var/lib/mysql/mysql.sock
server_version: '5.5'

Cała moja Ostateczna konfiguracja doktryny jest taka:

doctrine:
    dbal:
        driver: pdo_mysql
        host: '%database_host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'
        unix_socket: /var/lib/mysql/mysql.sock
        server_version: '5.5'
        charset: UTF8

Miejmy nadzieję, że to pomoże

 0
Author: aina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 19:33:16

Laravel .env dodaj DB_SOCKET ze ścieżką do mysql.skarpeta

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=mypassword

DB_SOCKET=/Users/username/Library/Containers/MAMP/mysql/tmp/mysql.sock

Lub dodać unix_socket w PDO

PDO('mysql:host=localhost;port=3306;unix_socket=/Users/username/Library/Containers/MAMP/mysql/tmp/mysql.sock', root, mypassword);
 0
Author: Олег Жарко,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-05 06:57:07