Lokal auf meinem Mac OS versuche ich, eine Verbindung zu meiner Staging-Datenbank herzustellen, die auf meiner Ubuntu-VM ausgeführt und gehostet wird.
In meinem config/database.php
In meiner .env habe ich
%Vor%Ich bin nicht sicher, was zu PUT als mein UNIX_SOCKET seit database.php es brauchen.
Ich habe immer
bekommen %Vor%Ich glaube das, weil mein Pfad zu UNIX_SOCKET falsch ist.
Wie würde man so etwas konfigurieren und konfigurieren?
Wie würde man das weiter machen und debuggen?
Ich öffne mich in diesem Moment für irgendwelche Vorschläge.
Irgendwelche Hinweise / Vorschläge / Hilfe dazu werden sehr geschätzt!
Basieren Sie auf der Antwort von @dparoli . Ich aktualisiere meine Datenbankkonfiguration nicht mehr mit UNIX_SOCKET .
%Vor%Jetzt habe ich
PDOException in Connector.php Zeile 49: SQLSTATE [HY000] [2002] Zeitüberschreitung der Operation
Ich habe versucht, mehr über die Einstellungen meiner staging
VM
Wird /etc/ssh/sshd_config
überhaupt irgendwelche Rollen spielen?
Liegt es daran, dass ich die Passwortanmeldung deaktiviert habe und nur die Anmeldung über den öffentlichen Schlüssel zuließ?
Ich habe beide versucht
PasswordAuthentication nein
und
PasswordAuthentication ja
Ich habe netstat -ln
ausgeführt, ich habe
Ich habe 0 0.0.0.0:3306 dort gesehen.
PDOException in Connector.php Zeile 49: SQLSTATE [HY000] [2002] Zeitüberschreitung der Operation
Wie kann ich das stoppen?
Was kann ich noch überprüfen oder versuchen?
Sie versuchen, sich über einen Unix-Socket mit einem anderen Host zu verbinden. Dies ist nicht möglich, da Sockets normalerweise nur für das System sichtbar sind, auf dem sie erstellt wurden.
Damit Ihr staging env funktioniert, müssen Sie die unix_socket
config-Zeile auskommentieren und einen Port hinzufügen:
Und konfigurieren Sie mysql, um auf diesen Port zu hören.
Dies scheint in erster Linie ein Netzwerkproblem zwischen dem Host und Gast zu sein.
mysql -hlocalhost -ujohn -p
mysql -h127.0.0.1 -ujohn -p
mysql -h127.0.0.1 -ujohn -p
Was Sie versuchen könnten, wenn Sie SSH
Zugriff auf die VM (oder eine andere Fernbedienung) haben, dann können Sie versuchen, die Verbindung über SSH
:
Jetzt fungiert der Port 3307
auf Ihrem lokalen Rechner als Port 3306
auf dem entfernten Rechner. In Ihrer Konfigurationsdatei können Sie dann
Der Nachteil dieses Ansatzes besteht darin, dass Sie eine Terminal-Sitzung einrichten und ausführen müssen, wenn Sie Ihre lokale Umgebung verwenden möchten.
Die Zeitüberschreitung der Operation wird höchstwahrscheinlich von der Firewall verursacht. Sie können dies beheben, indem Sie diese Befehle auf Ihrer VM ausführen:
%Vor%Falls dies nicht funktioniert, überprüfen Sie, ob Verkehr auf Port 3306 kommt, indem Sie diesen Befehl verwenden:
%Vor% Ersetzen Sie eth1
durch Ihre Netzwerkschnittstelle, die Sie mit diesem Befehl finden können:
Tags und Links mysql ubuntu database-connection laravel-5 laravel