Hallo und alles Gute für 2021.
Seit letztem Jahr versuche ich, eine Mysql auf meinem Server im LAN korrekt in Betrieb zu nehmen und aus dem LAN zu erreichen.
Hintergrund ist, dass ich Messwerte von Raspberrys dort speichern möchte.
Die Verbindung soll über SSH erfolgen, was schon länger im Terminal von meinem Laptop aus funktioniert.
In der Mysql habe ich einen Table "smarthome" angelegt, ebenso einen User "messi" mit PW.
Erstes Problem, ich kann ihm nicht alle Rechte zuteilen, root fehlt dazu das Recht ☹
Mit GRANT ... kann ich mir nicht selbst die Rechte geben, und .... gerade hab ich nich auch als root rausgeschossen...
mysql -u root -p mysql: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 22. mysql: [ERROR] Fatal error in defaults handling. Program aborted!
Den SSH Tunnel für mein Programm habe ich so gestartet:
ssh -v -N -L 3307:127.0.0.1:3306 192.168.1.100
Port 3306 soll zum Mysql weitergeleitet werden, 3307 wird im Programm für die Kommunikation vom Laptop benutzt.
Der SSH Tunnel wird von mir als Laptop-user aufgebaut. Der user messi als user des Programms und von Mysql ist jedoch ein anderer.
Geht das? Kommt der User auch durch meinen Tunnel?
SSH gibt bei dem Versuch folgendes aus:
debug1: Authentication succeeded (publickey). Authenticated to 192.168.1.100 ([192.168.1.100]:22). debug1: Local connections to LOCALHOST:3307 forwarded to remote address 127.0.0.1:3306 debug1: Local forwarding listening on ::1 port 3307. debug1: channel 0: new [port listener] debug1: Local forwarding listening on 127.0.0.1 port 3307. debug1: channel 1: new [port listener] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: pledge: network debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0 debug1: Remote: /home/joe/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding debug1: Remote: /home/joe/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding debug1: Connection to port 3307 forwarding to 127.0.0.1 port 3306 requested. debug1: channel 2: new [direct-tcpip] channel 2: open failed: connect failed: Connection refused debug1: channel 2: free: direct-tcpip: listening port 3307 for 127.0.0.1 port 3306, connect from 127.0.0.1 port 56074 to 127.0.0.1 port 3307, nchannels 3
Auf dem Laptop starte ich zum Test in Thonny folgendes Progrämmchen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import mysql.connector mydb = mysql.connector.connect( host="127.0.0.1", port="3307", user="messi", password="mess") mycursor = mydb.cursor() mycursor.execute("SHOW DATABASES") for x in mycursor: print(x) |
was mit folgendem Fehler quittiert wird:
Traceback (most recent call last): File "/home/joe/Technik/Elektronik/Raspberry/testmysql2.py", line 3, in <module> mydb = mysql.connector.connect( File "/usr/local/lib/python3.8/dist-packages/mysql/connector/__init__.py", line 271, in connect return MySQLConnection(*args, **kwargs) File "/usr/local/lib/python3.8/dist-packages/mysql/connector/connection.py", line 107, in __init__ self.connect(**kwargs) File "/usr/local/lib/python3.8/dist-packages/mysql/connector/abstracts.py", line 985, in connect self._open_connection() File "/usr/local/lib/python3.8/dist-packages/mysql/connector/connection.py", line 309, in _open_connection self._do_handshake() File "/usr/local/lib/python3.8/dist-packages/mysql/connector/connection.py", line 149, in _do_handshake packet = self._socket.recv() File "/usr/local/lib/python3.8/dist-packages/mysql/connector/network.py", line 267, in recv_plain raise errors.InterfaceError(errno=2013) mysql.connector.errors.InterfaceError: 2013: Lost connection to MySQL server during query
Kann der Fehler "mysql.connector.errors.InterfaceError: 2013" auch am SSH liegen oder deutet das auf einen Datenbankfehler hin?
Auch nach tagelangen Lesen in Foren bis hin zu Stackoverflow u.s.w. , was ich nicht wirklich verstehe, habe ich mich immer weiter verwurschtelt. Z.T. sind die Beiträge zu alt (2008) oder es wird kein SSH benutzt oder die User wollen aus dem Internet zugreifen...
Nicht wirklich eine Konstellation, die ungefähr der meinigen entspricht.
Wenn ich noch was Wichtiges vergessen haben sollte, sagts mir bitte.
Danke für jede Unterstützung, um aus dem Djungel herauszukomen,
VG Jörg