2017-08-13 1 views
1

ich folgendes Einsatz haben, die MySQL-Instanz aufstellt:Kann nicht an Port-Weiterleitung Pod verbinden MySQL läuft

kind: Deployment 
apiVersion: apps/v1beta1 
metadata: 
    name: mysql 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: mysql 
    spec: 
     containers: 
     - name: mysql 
     image: mysql:8 
     ports: 
     - containerPort: 3306 
     env: 
      - name: MYSQL_ROOT_PASSWORD 
      valueFrom: 
       secretKeyRef: 
       name: mysql-root-password 
       key: password 

Das Passwort ist nur root:

kind: Secret 
apiVersion: v1 
metadata: 
    name: mysql-root-password 
type: Opaque 
data: 
    password: cm9vdA== 

Das Problem ist, ich Versuchen Sie, nach Port, der den MySQL-Port weiterleitet, eine Verbindung zur Instanz herzustellen, indem Sie den Anweisungen von here folgen, aber erhalten Sie einen Fehler:

$ kubectl port-forward mysql-824284009-rpbpk 3306 
Forwarding from 127.0.0.1:3306 -> 3306 
Forwarding from [::1]:3306 -> 3306 

# from another terminal 
$ mysql -u root -p 
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

an den Server aus der Schote Connecting selbst funktioniert:

$ kubectl exec -it mysql-824284009-rpbpk -- /bin/bash 
[email protected]:/# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
... 
mysql> 

Ich habe im Grunde das gleiche Setup wie here, außer ich den Cluster in minikube statt GCP läuft. Mein lokaler MySQL läuft nicht, also nehme ich an, dass es keine Möglichkeit gibt, zu kollidieren.

Antwort

3

Die Port-Weiterleitung ist es wahrscheinlich, aber Sie müssen MySQL-Client sagen, mit Host/Port und nicht die Unix-Socket (default)

mysql --host=localhost --protocol tcp --port=3306 -u root -p 

anschließen Wenn Sie das nicht tun, mysql verwendet standardmäßig lokale Linux Socket er Server zu verbinden: /var/run/mysqld/mysqld.sock .. es gibt sogar sagt Ihnen so;)

Update: Als Gabriel geprüft - Hinzufügen --protocol tcp hatte schließlich gemacht es funktioniert, so dass ich addding es zu meiner Antwort

+0

Versuchte Ausführung von 'mysql --host = localhost --port = 3306 -u root -p', aber der Fehler tritt immer noch auf. –

+0

Der gleiche Fehler? –

+0

Ja. Gleicher Fehler –

Verwandte Themen