Feilsøking "Ingen slik fil eller katalog" når du kjører `php app / konsoll doktrinen: skjema: create`

stemmer
35

Jeg er ny på Symfony2 (beta4) og Lære og jeg har problemer når jeg prøver å opprette DB-skjemaet via kommandolinjen.

Her er feilen:

$ 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

innstillinger MySQL-databasen er korrekt satt inn i config / parameters.ini fil.

Og her er den Lære konfigurasjonen i 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

Og foretaket (jeg gjorde bare en å teste den)

<?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;
}
?>
Publisert på 07/06/2011 klokken 00:08
kilden bruker
På andre språk...                            


12 svar

stemmer
150

For sent, men jeg håper det kan hjelpe noen.

Bare i dag har jeg faller inn i en lignende situasjon (men i annen sammenheng, ble jeg prøver å skape enheter fra db).

Jeg løste det ganske enkelt å modifisere de database_host fra "localhost" til "127.0.0.1" i parameters.ini filen.

Jeg tror min Mysql eksempel kjører bare via TCP og ikke kontakten og fordi dette når bruken database_host = "localhost" den svikter.

Svarte 12/02/2012 kl. 19:27
kilden bruker

stemmer
19

Prøv å legge til denne linjen

unix_socket: /tmp/mysql.sock

inn config.yml fil> læren> dbal like etter passord linje.

Svarte 07/06/2011 kl. 08:06
kilden bruker

stemmer
11

Jeg endret 'host' => 'localhost' til 'host' => '127.0.0.1' på app / config / database.php og alt fungerer som det skal

Svarte 20/05/2014 kl. 18:34
kilden bruker

stemmer
5

Jeg fikset det ved å følge denne lille tutorial: http://andreys.info/blog/2007-11-07/configuring-terminal-to-work-with-mamp-mysql-on-leopard

[EDIT]: Jeg endret de riktige php.ini og alt fungerer fint nå.

Nå får jeg følgende feilmelding:

[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 

Her er date.timezone config i php.ini

date.timezone = "Europe/Paris"

Jeg skal prøve å finne ut av det selv, men hvis noen av dere vet hvordan å fikse det ikke nøl med å kommentere dette. Takk!

Svarte 07/06/2011 kl. 16:27
kilden bruker

stemmer
2

Problemet for meg var mysql.default_socketinnstillingen i php.ini mislighold til et annet sted enn der MySQL faktisk setter denne filen.

I stedet for å redigere config filer, jeg opprettet et alias i stedet at PHP er ute som kobles til den virkelige mysql.sock.

Bare kjøre disse to kommandoene (ingen omstart nødvendig):

mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Svarte 18/10/2014 kl. 03:25
kilden bruker

stemmer
0

Laravel .env legge DB_SOCKET med bane til mysql.sock

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

eller legge unix_socket i PUD

PDO('mysql:host=localhost;port=3306;unix_socket=/Users/username/Library/Containers/MAMP/mysql/tmp/mysql.sock', root, mypassword);
Svarte 05/03/2019 kl. 06:57
kilden bruker

stemmer
0

Hadde det samme problemet "SQLSTATE [HY000] [2002] Ingen slik fil eller katalog" på symfony 3.2.9 på utplassering

Jeg fikset det ved å endre database_host verdien fra "localhost" til serveren min IP på min parameters.yml fil

men jeg hadde denne en annen feilmelding når du prøver å kjøre kommando av SSH:

[Lære \ DBAL \ Unntak \ ConnectionException] Et unntak oppstod i driveren: SQLSTATE [HY000] [2002] Tilkobling nektet

Jeg endelig fikse det ved å legge disse 2 linjer på min config.yml fil i Lære konfigurasjon:

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

all min endelige lære konfigurasjonen er som dette:

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

forhåpentligvis dette hjelper

Svarte 09/02/2018 kl. 19:33
kilden bruker

stemmer
0

Restar mysql jobbet for meg:

sudo /etc/init.d/mysql restart

Svarte 05/05/2017 kl. 06:11
kilden bruker

stemmer
0

Jeg tror bare starte mysql og apache, som arbeidet for meg.

Svarte 10/03/2017 kl. 02:25
kilden bruker

stemmer
0

For sent, men håper det kan hjelpe noen i tillegg.

Jeg bruker Vagrant

Bare endre localhosttil 127.0.0.1og endre porten til3333

fungerte perfekt.

Svarte 05/12/2016 kl. 18:11
kilden bruker

stemmer
0

Verdt å sjekke for å se om Mysql kjører også.

Svarte 12/08/2016 kl. 00:50
kilden bruker

stemmer
0

Noen ganger kan du fikk flere løsning for plassering banen mysql.lock. Men jeg tror den beste løsningen er bare å se beliggenheten banen til mysql ved hjelp av PHP phpinfo()-funksjonen.

Merk: Hvis du ikke er familar med phpinfo(), så bare opprette en fil gi noen navn og inkludere innholdet i den filen som dette

<?php
phpinfo();
?>

kjøre denne filen og få banen mysql.lock fil. Jeg tror det vil hjelpe.

Svarte 07/11/2014 kl. 12:43
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more