sql >> Databasteknik >  >> RDS >> Mysql

mysqli::mysqli():(HY000/2002):Kan inte ansluta till den lokala MySQL-servern via uttaget 'MySQL' (2)

När du bara använder "localhost" försöker MySQL-klientbiblioteket att använda en Unix-domänsocket för anslutningen istället för en TCP/IP-anslutning. Felet talar om för dig att sockeln, som kallas MySQL , kan inte användas för att göra anslutningen, förmodligen för att den inte existerar (fel nummer 2).

Från MySQL-dokumentationen :

På Unix behandlar MySQL-program värdnamnet localhost speciellt, på ett sätt som sannolikt skiljer sig från vad du förväntar dig jämfört med andra nätverksbaserade program. För anslutningar till localhost, försökte MySQL-programmet att ansluta till den lokala servern genom att använda en Unix-socket-fil. Detta inträffar även om ett --port eller -P alternativ ges för att ange ett portnummer. För att säkerställa att klienten gör en TCP/IP-anslutning till den lokala servern, använd --host eller -h för att ange ett värde på värdnamnet 127.0.0.1, eller IP-adressen eller namnet på den lokala servern. Du kan också ange anslutningsprotokollet explicit, även för localhost, genom att använda --protocol=TCP-alternativet.

Det finns några sätt att lösa detta problem.

  1. Du kan bara använda TCP/IP istället för Unix-socket. Du skulle göra detta genom att använda 127.0.0.1 istället för localhost när du ansluter. Unix-uttaget kan dock bli snabbare och säkrare att använda.
  2. Du kan ändra socket i php.ini :öppna MySQL-konfigurationsfilen my.cnf för att hitta var MySQL skapar sockeln och ställ in PHPs mysqli.default_socket till den vägen. På mitt system är det /var/run/mysqld/mysqld.sock .
  3. Konfigurera socket direkt i PHP-skriptet när du öppnar anslutningen. Till exempel:

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


  1. gå med i två olika tabellers kolumn sqlite3

  2. Byt namn på SA-kontot i SQL Server (T-SQL-exempel)

  3. Hur väljer man data mellan två datum från sqlite db i formatet dd-mm-åååå?

  4. Se min presentation om "Optimera Microsoft Access med SQL Server".