Dzisiaj usunąłem i ponownie zainstalowałem najnowszą wersję lampp, aby przejść do wersji 5.30 i nagle bardzo prosta aplikacja nie łączy się z bazą danych mysql. Używam PDO połączyć i odbieranie następujący błąd:Błąd podczas tworzenia połączenia z PDO w PHP
Warning: PDO::__construct() [pdo.--construct]: [2002] Invalid argument (trying to connect
via unix://) in /home/raistlin/www/todoapp/home.php on line 9
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
Invalid argument' in /home/raistlin/www/todoapp/home.php:9 Stack trace: #0
/home/raistlin/www/todoapp/home.php(9): PDO->__construct('mysql:host=loca...', 'USER',
'PASSWORD') #1 {main} thrown in /home/raistlin/www/todoapp/home.php on line 9
ja nie łapie błąd w tej chwili, ze względu na debugowanie go.
Poniższy kod wystarczy, aby replikować problem w moim systemie:
<?php
$DBACCESS = array(
"connstring"=>"mysql:host=localhost;dbname=todoapp",
"host"=>"localhost",
"user"=>"user",
"password"=>"password",
"todoapp"=>"todoapp"
);
echo implode('<br \>',$DBACCESS);
$dbh = new PDO($DBACCESS['connstring'],$DBACCESS['user'],$DBACCESS['password']);
$dbh = null;
?>
szuka w internecie, znalazłem jedną lub dwie inne osoby z tego samego problemu, ale żaden z nich nie otrzymał odpowiedzi, znacznie mniej pracujący. Czy ktoś wie, co się dzieje? Czy jest coś, czego mi brakowało w konfiguracji? Co muszę zrobić, aby to naprawić?
Nie jestem pewien, dlaczego MySQL czasami przyjmuje "localhost" w znaczeniu "Mam zamiar użyć gniazda Unix" – TML
Perfect. Problem został rozwiązany za pomocą opcji 2, chociaż w przypadku instalacji lamp Xampp musiałem użyć /opt/lampp/var/mysql/mysql.sock. – krdluzni
Pewnie. Cieszę się, że udało ci się znaleźć gniazdo - po prostu rzuciłem w nie przykład i modliłem się, żebyś go znalazł. :) – TML