Ein # in einem nicht zitierten .env-Wert kann einen Kommentar beginnen und das Passwort abschneiden. Fehler 1045 kann jedoch auch durch user@host-Zuordnung und MySQL-Rechte entstehen.
SQLSTATE[HY000] [1045] Access denied for user
DB_PASSWORD=Guclu#Sifre2026!
DB_PASSWORD="Guclu#Sifre2026!"
PHPDotenv verwendet # als Kommentarzeichen, daher sollten Passwörter mit Sonderzeichen zitiert werden. MySQL authentifiziert außerdem anhand von Benutzername und Verbindungs-Host; localhost und 127.0.0.1 können unterschiedliche Wege nutzen.
Der Parser kann den Wert am # abschneiden.
DB_PASSWORD=Guclu#Sifre2026!DB_PASSWORD="Guclu#Sifre2026!"Wenn TCP erwartet wird, kann localhost einen Socket verwenden. Wählen Sie den zur Serverarchitektur passenden Wert.
DB_HOST=localhostDB_HOST=127.0.0.1Der Hostteil des MySQL-Kontos muss zur tatsächlichen Verbindungsquelle passen.
'uygulama'@'localhost''uygulama'@'127.0.0.1' veya uygun '%' kaydıPasswort nicht im Shell-Verlauf oder Support-Log offenlegen.
grep -nE '^(DB_CONNECTION|DB_HOST|DB_PORT|DB_DATABASE|DB_USERNAME)=' .env
grep -n '^DB_PASSWORD=' .env | sed 's/=.*/=***MASKED***/'
Passwort nicht in die Befehlszeile schreiben; nach -p interaktiv eingeben.
mysql --protocol=TCP -h 127.0.0.1 -P 3306 -u uygulama -p veritabani
Mit einem berechtigten MySQL-Administratorkonto ausführen.
SELECT User, Host, plugin FROM mysql.user WHERE User='uygulama';
SHOW GRANTS FOR 'uygulama'@'localhost';
Stellt sicher, dass der korrigierte .env-Wert geladen wird.
php artisan optimize:clear
php artisan config:cache
php artisan migrate:status
Erstellen Sie eine geschützte Sicherung der aktuellen .env-Datei.
DB_PASSWORD in doppelte Anführungszeichen setzen, ohne das tatsächliche Passwort zu ändern.
DB_HOST entsprechend Socket- oder TCP-Struktur des Servers prüfen.
Verbindung mit demselben Benutzer und derselben Datenbank per MySQL-CLI testen.
user@host-Konto und GRANT-Rechte prüfen.
Laravel-Config-Cache leeren und Verbindung erneut prüfen.
Passwort, user@host oder Authentifizierungs-Plugin stimmt nicht.
MySQL lauscht nicht oder eine Firewall blockiert den Port.
Der localhost-Socketpfad ist falsch oder nicht vorhanden.
DB_DATABASE ist falsch oder die Datenbank existiert nicht.
Kein passender Fehler gefunden.
In Dotenv-Syntax markiert # einen Kommentar. Durch Zitieren bleibt das Zeichen Teil des Werts.
Das hängt von der MySQL-Konfiguration ab. 127.0.0.1 nutzt ausdrücklich TCP, localhost kann einen Socket verwenden. Testen und passend auswählen.
Liegt es nur an .env, kann korrektes Zitieren genügen. Rechte- oder user@host-Probleme müssen in MySQL korrigiert werden.
Wir setzen dauerhafte Lösungen um, indem wir Laravel, PHP-FPM, Nginx, Apache, MySQL, cPanel und Plesk gemeinsam mit den Logs prüfen.