Pardasus Posted June 23, 2023 Share Posted June 23, 2023 Moin zusammen, ich bin dabei von einem Proxmox Server auf unRAID umzuziehen. Nun ist die MariaDB dran. Die Datenbank konnte ich problemlos exportieren und liegt nun als .sql File vor. Jetzt wollte ich diese im MariaDB (unRAID Docker) wieder Importieren. Leider klappt dies nicht. Ich gebe folgendes ein: docker exec -i MariaDB-Official mysql -{user} -{password} homeassistant < /mnt/user/appdata/homeassistant.sql Als Fehlermeldung erhalte ich dies: OCI runtime exec failed: exec failed: unable to start container process: exec: "mysql": executable file not found in $PATH: unknown Hat da jemand eine Idee? Wollte es erst mit PHPmyAdmin hochladen, aber die DB ist 1GB groß und ich bekomme das PHP Upload Limit nicht erhöht. Quote Link to comment
hawihoney Posted June 24, 2023 Share Posted June 24, 2023 (edited) 8 hours ago, Pardasus said: "mysql": executable file not found in $PATH Die Fehlermeldung ist eindeutig. Ruf mal nur das mysql executable mit user und password in der Container Console auf. Wenn das klappt importiere einfach in der Container Console. mysql> use homeassistant; mysql> SET autocommit=0 ; source wo_auch_immer_das_im_container_gemappt_wurde.sql ; COMMIT ; Edited June 24, 2023 by hawihoney Quote Link to comment
Pardasus Posted June 24, 2023 Author Share Posted June 24, 2023 Ich lese die Fehlermeldung so, dass "mysql" im Docker Container nicht gefunden wurde. Ich habe die offizielle MariaDB Version aus dem App-Store genommen. docker exec -i MariaDB-Official mysql -{user} -{password} OCI runtime exec failed: exec failed: unable to start container process: exec: "mysql": executable file not found in $PATH: unknown Dort steht ja "executable file not found" mit bezug auf "mysql". Quote Link to comment
hawihoney Posted June 24, 2023 Share Posted June 24, 2023 (edited) 2 hours ago, Pardasus said: Dort steht ja "executable file not found" mit bezug auf "mysql" Und? Hast Du es in der Container Konsole probiert? Edited June 24, 2023 by hawihoney Quote Link to comment
Pardasus Posted June 24, 2023 Author Share Posted June 24, 2023 (edited) Ich habe dies immer über die unRAID Console probiert, aber auch über die Console vom MariaDB-Container sagt er mir "msql: not found". Fehlt die Anwendung vielleicht einfach im Docker? Edited June 24, 2023 by Pardasus Quote Link to comment
hawihoney Posted June 24, 2023 Share Posted June 24, 2023 (edited) 34 minutes ago, Pardasus said: msql: not found msql oder mysql? Im Übrigen: Versuchs mal mit mariadb statt mysql. Je nach Versionsstand sind das jeweils Symlinks: https://mariadb.com/kb/en/mariadb-command-line-client/ Edited June 24, 2023 by hawihoney Quote Link to comment
Pardasus Posted June 24, 2023 Author Share Posted June 24, 2023 Ah, ok. Jetzt kommen wir weiter. Den Befehl "mariadb" und "mariadb-dump" kennt er. Wenn ich über "mariadb-dump" aber das .sql File Importieren will, sagt er immer "Access denied for user..." wobei ich mich Problemlos über phpMyAdmin anmelden kann. Quote Link to comment
Pardasus Posted June 24, 2023 Author Share Posted June 24, 2023 So, ich habe MariaDB noch mal gelöscht und neu angelegt. Dabei ein zufällig genierte Passwort von Installation Script erzeugen lassen. Nun klappte der Import.... bedingt. Es kamm keine Fehlermeldung mehr, aber er hat nur die Tabellen angelegt, nicht aber mit werten gefüllt. Das bekomme ich aber auch noch raus Quote Link to comment
hawihoney Posted June 24, 2023 Share Posted June 24, 2023 (edited) 3 hours ago, Pardasus said: Wenn ich über "mariadb-dump" aber das .sql File Importieren will, sagt er immer "Access denied for user..." Geht das nicht mit dem mariadb executable? Einfach in der Container Konsole mit -u User -p aufrufen. Dann die beiden Zeilen aus dem Code oben. Schneller geht's nicht. Und es wurden nur Tabellen angelegt? Guck mal in die *.sql Datei. Hast vielleicht nur DDL (Data Description Language) und nicht DML (Data Manipulation Language) gesichert. Edited June 24, 2023 by hawihoney Quote Link to comment
Pardasus Posted June 24, 2023 Author Share Posted June 24, 2023 Die frage kann ich leider nicht vollständig beantworten. Die Datei ist 1GB groß, denke da dürfte die komplette DB sein und nicht nur die Tabellen. Mittlerweile bin ich auch schlauer geworden, funktionieren tut es aber immer noch nicht. Ich gehe in die Console vom Docker-Containter "MariaDB" und erstelle mir direkt dort das Backup von der anderen Datenbank mit: mariadb-dump --user="xxx" --password="xxx" --host="192.168.178.179" homeassistant > homeassistant.sql Dies dauert auch ein paar Sekunden und raus kommt eine 1GB .sql Datei. Nun Importiere ich die local gespeicherte DB wieder mit: mariadb-dump --user="x" --password="x" homeassistant < homeassistant.sql Dies dauert aber nur 1 Sekunde und raus kommt dies: -- MariaDB dump 10.19-11.0.2-MariaDB, for debian-linux-gnu (x86_64) -- -- Host: localhost Database: homeassistant -- ------------------------------------------------------ -- Server version 11.0.2-MariaDB-1:11.0.2+maria~ubu2204 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2023-06-24 20:47:38 Und es sind nur die Tabellen erstellt worden. Mysteriös.... Quote Link to comment
Solution Pardasus Posted June 24, 2023 Author Solution Share Posted June 24, 2023 (edited) So, nach vielen hin und her hier die Lösung: MariaDB ist quasi MySQL. Darum finde man oft im Internet Beispiele für "MySQL" welcher der MariaDB Docker Container nicht versteht. Backup einer Datenbank: mariadb-dump --user="xxx" --password="xxx" --host="192.168.178.179" homeassistant > homeassistant.sql Der "Host" ist nicht unbedingt notwendig. Hier wollte ich aber ein Backup einer bereits laufenden, externen, MariaDB machen. Importiert wird das ganze dann mit: mariadb --user="xxx" --password="xxx" homeassistant < homeassistant.sql Den Befehlt habe ich in der Console vom Docker Container ausgeführt. In meinen Beispiel geht es um eine Homeassistant Datenbank. Die Datenbank muss vorher erstellet werden. Edited June 24, 2023 by Pardasus Quote Link to comment
hawihoney Posted June 25, 2023 Share Posted June 25, 2023 10 hours ago, Pardasus said: Importiert wird das ganze dann mit: Genau das hatte ich mehrfach oben geschrieben - sogar in meiner ersten Antwort. Importiere mit den mysql/mariadb executables. xxx-dump erzeugt wie der Name schon sagt einen Dump. Quote Link to comment
Pardasus Posted June 25, 2023 Author Share Posted June 25, 2023 (edited) 16 minutes ago, hawihoney said: Genau das hatte ich mehrfach oben geschrieben - sogar in meiner ersten Antwort. Importiere mit den mysql/mariadb executables. xxx-dump erzeugt wie der Name schon sagt einen Dump. Bitte nicht falsch verstehen, ich bin dankbar für deine Unterstützung. Aber in deiner ersten Antwort gingst du davon aus, dass das Problem der Aufruf von "mysql" außerhalb vom Container das Problem war. Dabei ist "mysql" weder innerhalb, noch von außerhalb auffindbar gewesen. Dann haben wir heraus bekommen das ich "mariadb..." eingeben muss und nicht "mysql". Da ich am Anfang aber noch damit Beschäftigt war heraus zu bekommen warum "mysql" nicht gefunden wird, hatte ich mich ehrlich gesagt nicht weiter mit deiner Lösung beschäftigt wie man Daten wieder zurückspielen kann. Hier scheint es mehrere Wege zu geben. Weg 1 (von mir nicht getestet) mysql --user="xxx" --password="xxx" mysql> use homeassistant; mysql> SET autocommit=0 ; source wo_auch_immer_das_im_container_gemappt_wurde.sql ; COMMIT ; Weg 2 mariadb-dump --user="xxx" --password="xxx" homeassistant < homeassistant.sql Ich denke, wir haben uns 1-2x missverstanden, aber am ende dann doch gemeinsam die Lösung gefunden 👍 Edited June 25, 2023 by Pardasus Quote Link to comment
hawihoney Posted June 25, 2023 Share Posted June 25, 2023 50 minutes ago, Pardasus said: Dann haben wir heraus bekommen das ich "mariadb..." eingeben muss und nicht "mysql". Auch das hatte ich oben geschrieben - sogar mit Link zur Erläuterung. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.