# Mysqldump einspielen

**URL:** <https://forum.shopware.com/t/mysqldump-einspielen/61016>\
**Category:** Installation / Einstieg\
**Created:** [12. August 2019 um 12:10 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016 "2019-08-12T12:10:49Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![JoachimK](https://avatars.discourse-cdn.com/v4/letter/j/f475e1/32.png) [@JoachimK](https://forum.shopware.com/u/JoachimK)\
**Post date:** [11. September 2020 um 17:33 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/22 "2020-09-11T17:33:16Z")

</div>

> [@Stephan\_Grass schrieb:](https://forum.shopware.com/profile/25826/Stephan_Grass "Stephan\_Grass")
> 
> Ich habe einen Dump einer frischen Installation unter MariaDB gemacht und die abweichenden CREATE Befehle in meinen MySQL-Dump kopiert.  
> Bei mir gab es einige Abweichungen im Create-Befehl der Tabellen `product_keyword_dictionary` und `order`.
> 
> Danach hat es mit dem Import geklappt …

Vielen Dank, so hat’s bei mir auch funktioniert.&nbsp;

---

<div class="post-metadata">

**Author:** ![bdw](https://avatars.discourse-cdn.com/v4/letter/b/858c86/32.png) [@bdw](https://forum.shopware.com/u/bdw)\
**Post date:** [20. Oktober 2020 um 09:09 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/23 "2020-10-20T09:09:04Z")

</div>

> [@Plotec schrieb:](https://forum.shopware.com/profile/36467/Plotec "Plotec")
> 
> Mir geht es um ein automatisches Backup per Cronjob. Das geht meines Wissens nur mit mysqldump, deswegen ja auch dieser Thread. Manuell mit phpmyadmin - ob geeignet oder nicht - funktioniert es ja. Gleichzeitig wird ein Dateibackup erstellt. Ich möchte ein zeitlich syncrones Backup von DB und Dateien

Hast du es lösen können? Wie sieht deine Lösung aus?&nbsp;

---

<div class="post-metadata">

**Author:** ![Plotec](https://avatars.discourse-cdn.com/v4/letter/p/c4cdca/32.png) [@Plotec](https://forum.shopware.com/u/Plotec)\
**Post date:** [21. Oktober 2020 um 12:29 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/24 "2020-10-21T12:29:40Z")

</div>

Gar nicht. Ich mache im Moment täglich ein manuelles Backup mit Adminer. Damit funktioniert dann auch eine Restore (auch wieder mit Adminer).

---

<div class="post-metadata">

**Author:** ![alexm](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@alexm](https://forum.shopware.com/u/alexm)\
**Post date:** [22. Oktober 2020 um 13:52 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/25 "2020-10-22T13:52:21Z")

</div>

Plotec, welche Versionen verwendest du von mysqldump und mysql? Das Problem bei dir scheint ja mit den virtuellen Spalten zusammen zu hängen - dort gab es mal einen Bug, wie auch kommand oben schreibt,&nbsp;der aber zwischenzeitlich behoben wurde. Vielleicht ist das die Ursache?

---

<div class="post-metadata">

**Author:** ![Plotec](https://avatars.discourse-cdn.com/v4/letter/p/c4cdca/32.png) [@Plotec](https://forum.shopware.com/u/Plotec)\
**Post date:** [23. Oktober 2020 um 13:38 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/26 "2020-10-23T13:38:55Z")

</div>

mysqldump&nbsp; Ver 10.16 Distrib 10.1.45-MariaDB, for debian-linux-gnu (x86\_64)

Datenbank ist Mysql 8.0.21

&nbsp;

---

<div class="post-metadata">

**Author:** ![kommad](https://avatars.discourse-cdn.com/v4/letter/k/96bed5/32.png) [@kommad](https://forum.shopware.com/u/kommad)\
**Post date:** [13. November 2020 um 15:35 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/27 "2020-11-13T15:35:08Z")

</div>

Wir haben das Problem wieder

Dump von:  
Version MySQL: 5.5.5-10.3.24-MariaDB-1:10.3.24+maria~stretch mit PHP-Erweiterung MySQLi  
nach&nbsp;  
Version MySQL: 5.7.27-30 mit PHP-Erweiterung MySQLi  
einspielen

geht nicht - was kann man machen?

&nbsp;„The value specified for generated column ‚order\_date‘ in table ‚order‘ is not allowed“

---

<div class="post-metadata">

**Author:** ![vanwittlaer](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/vanwittlaer/32/8499_2.png) [@vanwittlaer](https://forum.shopware.com/u/vanwittlaer)\
**Post date:** [13. November 2020 um 16:53 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/28 "2020-11-13T16:53:52Z")

</div>

Das Problem ist mysqldump aus MariaDB distribution. Besser versucht irgendwie, den Dump mit MySQL zu machen. Z.B. von der Ziel-Maschine aus einen SSH-Tunnel zur Quell-Maschine, und dann mysqldump auf der Zielmaschine ausführen.

Good luck 🙂  
Geert

---

<div class="post-metadata">

**Author:** ![kommad](https://avatars.discourse-cdn.com/v4/letter/k/96bed5/32.png) [@kommad](https://forum.shopware.com/u/kommad)\
**Post date:** [14. November 2020 um 08:48 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/29 "2020-11-14T08:48:25Z")

</div>

Hallo,

na ja nicht ganz wie weiter oben besteht das Problem ja auch wenn man nur mysql nimmt.

Wir haben auch versucht den&nbsp;Dump mit folgenden optionen zu erstellen. Leider ohne erfolg.

mysqldump --hex-blob xxx -hxxx -u xxx -p’xxx’ \> xxx.sql

mysqldump --force --single-transaction --compact xxx -hlocalhost -u xxx -p’xxx’ \> xxx.sql

mysql -u’xx’ -p’xx’ -h’[xx.mydbserver.com](http://xx.mydbserver.com)’ usr\_p570335\_2

&nbsp;

Heidi SQL ist leider keine Option, gibt es da eine Mac Alternative?

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [14. November 2020 um 11:55 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/30 "2020-11-14T11:55:53Z")

</div>

> &nbsp;„The value specified for **generated column** ’order\_date’ in table ‚order‘ is not allowed“

Wenn ich das richtig sehe hat das **order\_date** eine Stored&nbsp; **Generated Column** was ein feature&nbsp;erst ab&nbsp; MySQL 5.7 released ist.

Vll hilft die Info weiter. @kommad‍

---

<div class="post-metadata">

**Author:** ![alex999](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@alex999](https://forum.shopware.com/u/alex999)\
**Post date:** [2. Dezember 2020 um 16:52 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/31 "2020-12-02T16:52:13Z")

</div>

> [@kommad schrieb:](https://forum.shopware.com/profile/17280/kommad "kommad")
> 
> Heidi SQL ist leider keine Option, gibt es da eine Mac Alternative?

[https://www.sequelpro.com/&nbsp](https://www.sequelpro.com/&nbsp);  
 ![Thumb-Up](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/7fcda44f782696668a3d093569d15e88105769e1.png "Thumb-Up")&nbsp;

---

<div class="post-metadata">

**Author:** ![youbility.de](https://avatars.discourse-cdn.com/v4/letter/y/a698b9/32.png) [@youbility.de](https://forum.shopware.com/u/youbility.de)\
**Post date:** [11. März 2021 um 18:29 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/32 "2021-03-11T18:29:51Z")

</div>

Die Syntax im Export von Mysql wird in MariaDB nicht unterstützt. Es hilft die entsprechenden 2 Zeilen im Dump anzupassen:

Original (Mysql 5.7+):  
`tax_status` varchar(255) COLLATE utf8mb4\_unicode\_ci GENERATED ALWAYS AS (json\_unquote(json\_extract(`price`,’$.taxStatus’))) VIRTUAL,

Update (MariaDB 10.2.22+):  
`tax_status` varchar(255) GENERATED ALWAYS AS (json\_unquote(json\_extract(`price`,’$.taxStatus’))) VIRTUAL,

---

<div class="post-metadata">

**Author:** ![ansgar](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/ansgar/32/7871_2.png) [@ansgar](https://forum.shopware.com/u/ansgar)\
**Post date:** [21. April 2021 um 12:24 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/33 "2021-04-21T12:24:17Z")

</div>

Wer das nicht will, der muss den Dump mit dem mysqldump Programm aus einer MySQL 5.7.9 (oder neuer) erstellen. Um sicherzugehen, einmal die Version prüfen:

```
> mysqldump --version
da sollte so etwas in der Art stehen:
< mysqldump Ver 10.13 Distrib 5.7.33, for Linux (x86_64)

```

Habe das gerade selbst gemacht und den Dump anschließend in MySQL 5.7.33 ohne den o.s. Fehler importiert.

---

<div class="post-metadata">

**Author:** ![runde8](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/runde8/32/13502_2.png) [@runde8](https://forum.shopware.com/u/runde8)\
**Post date:** [15. Mai 2021 um 10:50 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/34 "2021-05-15T10:50:08Z")

</div>

Hey zusammen, gibt es hierzu mittlerweile eine Lösung?

Habe gerade einen ähnlichen Fall, probiert wurde bisher folgendes:

1.) Dump per externe Maschine: Wir haben uns via SSH Tunnel auf dem System aufgeschaltet, den Dump gefahren und erhalten dennoch die Fehlermeldung von oben.  
2.) Wir haben probiert das ganze per Adminer zu exportieren und wieder zu importieren, immer der selbe Effekt.  
3.) Wir haben probiert per Sequelpro das ganze zu exportieren und auf dem neuen System zu importieren… selber Effekt.

Mir gehen langsam die Ideen aus… hat hier jemand eine Idee?

`The value specified for generated column 'order_date' in table 'order' is not allowed.`

---

<div class="post-metadata">

**Author:** ![ansgar](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/ansgar/32/7871_2.png) [@ansgar](https://forum.shopware.com/u/ansgar)\
**Post date:** [16. Mai 2021 um 07:22 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/35 "2021-05-16T07:22:28Z")

</div>

@runde8 welche mysqldump Version hast du eingesetzt (`mysqldump --version`),  
und auf welcher Serverversion importierst du den (`SHOW VARIABLES LIKE 'version%'`)?

---

<div class="post-metadata">

**Author:** ![runde8](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/runde8/32/13502_2.png) [@runde8](https://forum.shopware.com/u/runde8)\
**Post date:** [17. Mai 2021 um 18:14 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/36 "2021-05-17T18:14:58Z")

</div>

Hey Ansgar, das aktuelle Live-System hat folgende Infos:

```
mysqldump Ver 10.18 Distrib 10.4.17-MariaDB, for debian-linux-gnu (x86_64)

```

Das neue System hat folgende Infos

`mysqldump Ver 10.13 Distrib 5.7.33, for Linux (x86_64)`

---

<div class="post-metadata">

**Author:** ![ansgar](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/ansgar/32/7871_2.png) [@ansgar](https://forum.shopware.com/u/ansgar)\
**Post date:** [18. Mai 2021 um 06:50 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/37 "2021-05-18T06:50:30Z")

</div>

Also ähnlich wie das bei mir kürzlich war: MariaDB 10.3 =\> MySQL 5.7.33

Bei mir hat es geholfen die MariaDB-Daten mit dem mysqldump aus MySQL zu erstellen. Diesen Dump konnte ich dann in MySQL fehlerlos einspielen.

Wenn mysqldump/MySQL nicht auf die MariaDB zugreifen kann, könntest du vorher mit einer separaten Shell einen SSH Tunnel aufbauen:

```
ssh -L 3307:127.0.0.1:3306 -N -C benutzername@mariadb-hostname
```

---

<div class="post-metadata">

**Author:** ![pino](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pino/32/14373_2.png) [@pino](https://forum.shopware.com/u/pino)\
**Post date:** [4. Juni 2021 um 12:22 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/38 "2021-06-04T12:22:05Z")

</div>

seit SW 6.4 hab ich auch das problem und löse es wie folgt:

mysqldump wie immer erstellen

```auto
mysqldump -u$MYSQL_USR -p$MYSQL_PASS -h$MYSQL_HOST $MYSQL_DB > backup.sql

```

mit suchen&ersetzen die spalte verändern

```auto
sed -i 's/COLLATE utf8mb4_unicode_ci GENERATED ALWAYS AS/GENERATED ALWAYS AS/g' backup.sql

```

die spalte per `ALTER TABLE` hat das problem nicht behoben.  
die einstellungen bleiben bestehen.

```auto
ALTER TABLE `order` CHANGE `tax_status` `tax_status` VARCHAR(255) GENERATED ALWAYS AS (json_unquote(json_extract(`price`,'$.taxStatus'))) VIRTUAL;

```

---

<div class="post-metadata">

**Author:** ![stimpy](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@stimpy](https://forum.shopware.com/u/stimpy)\
**Post date:** [7. November 2021 um 19:07 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/39 "2021-11-07T19:07:29Z")

</div>

Habe auch das gleiche Problem  
‚total\_price‘ in table ‚order\_delivery\_position‘ is not allowed.

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [7. November 2021 um 20:13 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/40 "2021-11-07T20:13:32Z")

</div>

Für nen Automatischen Backup habe ich mir mal dieses Script gebaut… Dieses läuft auch auf einigen Demo Instanzen für unsere Shopware Plugins. Ich poste mal nur die entsprechenden Teile:

1. Backup erstellen:

```auto
    public function execute(): void
    {
        if (!file_exists($this->backupDir)) {
            mkdir($this->backupDir, 0777, true);
        }

        $file = $this->backupDir . "backup.sql";

        $db = $this->getDb();

        $cmd = sprintf(
            "mysqldump -u %s -p'%s' --allow-keywords --add-drop-table --complete-insert --quote-names %s > %s",
            $db['user'],
            $db['pass'],
            $db['path'],
            $file
        );
        exec($cmd, $this->output);
    }

    private function getDb(): array
    {
        if (getenv('DATABASE_URL') && $db = parse_url(getenv('DATABASE_URL'))) {
            $db = array_map('rawurldecode', $db);
            $db['path'] = mb_substr($db['path'], 1);
            if (!isset($db['pass'])) {
                $db['pass'] = '';
            }
        } else {
            die('Critical environment variable \'DATABASE_URL\' missing!' . \PHP_EOL);
        }

        if (!isset($db['host'])) {
            $db['host'] = 'localhost';
        }

        return $db;
    }

```

1. Backup einspielen / DB credentials aus der .env beziehen:

```auto
    public function execute(): void
    {
        $file = $this->backupDir . "backup.sql";

        if (!file_exists($file)) {
            return;
        }

        $db = $this->getDb();

        $cmd = sprintf(
            "mysql -u %s -p'%s' %s < %s",
            $db['user'],
            $db['pass'],
            $db['path'],
            $file
        );
        exec($cmd, $this->output);
    }

```

Obs nun überall klappt weiß ich nicht, aber vllt. hilfts ja weiter 😉

---

<div class="post-metadata">

**Author:** ![stimpy](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@stimpy](https://forum.shopware.com/u/stimpy)\
**Post date:** [7. November 2021 um 21:28 UTC](https://forum.shopware.com/t/mysqldump-einspielen/61016/41 "2021-11-07T21:28:09Z")

</div>

Danke, ich weiß mit soviel Code aber nichts anzufangen. Muss ich das in einer Datei speichern und extern aufrufen? Muss ich die Platzhalter (user, passs, path) mit den Zugangsdaten füllen? Sorry, kenne mich echt nicht aus.

[Vorherige Seite](https://forum.shopware.com/t/mysqldump-einspielen/61016.md?page=1)

[Nächste Seite](https://forum.shopware.com/t/mysqldump-einspielen/61016.md?page=3)
