sql >> Database teknologi >  >> RDS >> Mysql

mysqli::mysqli():(HY000/2002):Kan ikke oprette forbindelse til lokal MySQL-server gennem socket 'MySQL' (2)

Når du kun bruger "localhost" forsøger MySQL-klientbiblioteket at bruge en Unix-domæne-socket til forbindelsen i stedet for en TCP/IP-forbindelse. Fejlen fortæller dig, at socket, kaldet MySQL , kan ikke bruges til at oprette forbindelsen, sandsynligvis fordi den ikke eksisterer (fejl nummer 2).

Fra MySQL-dokumentationen :

På Unix behandler MySQL-programmer værtsnavnet localhost specielt, som sandsynligvis er anderledes end hvad du forventer sammenlignet med andre netværksbaserede programmer. For forbindelser til localhost, forsøgte MySQL-programmet at oprette forbindelse til den lokale server ved at bruge en Unix-socket-fil. Dette sker, selvom der gives en --port eller -P mulighed for at angive et portnummer. For at sikre, at klienten laver en TCP/IP-forbindelse til den lokale server, skal du bruge --host eller -h til at angive en værtsnavnværdi på 127.0.0.1 eller IP-adressen eller navnet på den lokale server. Du kan også specificere forbindelsesprotokollen eksplicit, selv for localhost, ved at bruge --protocol=TCP-indstillingen.

Der er et par måder at løse dette problem på.

  1. Du kan bare bruge TCP/IP i stedet for Unix-socket. Du ville gøre dette ved at bruge 127.0.0.1 i stedet for localhost når du forbinder. Unix-stikket kan dog være hurtigere og sikrere at bruge.
  2. Du kan ændre socket i php.ini :Åbn MySQL-konfigurationsfilen my.cnf for at finde ud af, hvor MySQL opretter socket, og indstil PHP's mysqli.default_socket til den vej. På mit system er det /var/run/mysqld/mysqld.sock .
  3. Konfigurer socket direkte i PHP-scriptet, når du åbner forbindelsen. For eksempel:

    $db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                                  '/var/run/mysqld/mysqld.sock')
    


  1. Implementering af failover i MS SQL Server 2017 Standard

  2. Guide til designdatabase til opgavehåndtering i MySQL

  3. Sådan omnummereres primært indeks

  4. SET NULL:Angiv en streng, der skal returneres, når der forekommer en nulværdi i SQLcl / SQL*Plus