Backup av databasen inklusive lagrade procedurer

  • Författare
  • Meddelande
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10904
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Backup av databasen inklusive lagrade procedurer

Inlägg25 feb 2019, 18:21

I guiden skolan visas hur man tar en backup av databasen.
https://dbwebb.se/guide/kom-igang-med-s ... -databasen

Vi tar en databasdump av databasen skolan så här.
Kod: Markera allt
mysqldump -uroot -p skolan > backup.sql


Eller så här.
Kod: Markera allt
mysqldump -uroot -p --result-file=backup.sql skolan


Men, när vi har lagrade procedurer, triggers och funktioner så behöver vi även dumpa deras DDL. Det gör vi på följande sätt, genom att lägga till --routines.
Kod: Markera allt
mysqldump -uroot -p --routines skolan > backup.sql
# alterativt
mysqldump -uroot -p --routines --result-file=backup.sql skolan
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10904
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Backup av databasen inklusive lagrade procedurer

Inlägg11 mar 2019, 15:54

Om du vill att databasdumpen även skall innehålla konstruktionen för att DROP/CREATE DATABASE så kan du skriva så här:
Kod: Markera allt
mysqldump -uroot -p --routines --add-drop-database --databases eshop > backup.sql
# alterativt
mysqldump -uroot -p --routines --add-drop-database --result-file=backup.sql --databases eshop


(uppdaterad enligt nedanstående inlägg)
...
..:
.... /mos
Användarvisningsbild

Evil_Bengt

html-kodare

  • Inlägg: 18
  • Blev medlem: 03 sep 2018, 15:10
  • Ort: Adelöv, Tranås

Re: Backup av databasen inklusive lagrade procedurer

Inlägg11 mar 2019, 16:14

mos skrev:Om du vill att databasdumpen även skall innehålla konstruktionen för att DROP/CREATE DATABASE så kan du skriva så här:
Kod: Markera allt
mysqldump -uroot -p --routines --databases=eshop --add-drop-database > backup.sql
# alterativt
mysqldump -uroot -p --routines --databases=eshop --add-drop-database --result-file=backup.sql


Kod: Markera allt
--databases=eshop
verkar inte fungera för mig:

Kod: Markera allt
$ mysqldump -udbwebb -p --routines --databases=eshop --add-drop-database > backup.sql
Warning: mysqldump: ignoring option '--databases' due to invalid value 'eshop'
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help


Kod: Markera allt
mysqldump -udbwebb -p --routines --add-drop-database eshop > backup.sql
fungerar fint dock :D

(Kör på Cygwin i win10 om de påverkar)
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10904
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Backup av databasen inklusive lagrade procedurer

Inlägg11 mar 2019, 16:30

Då prövar jag igen...
Kod: Markera allt
mysqldump -uroot -p --routines --add-drop-database --databases eshop > backup.sql
# alterativt
mysqldump -uroot -p --routines --add-drop-database --result-file=backup.sql --databases eshop


Nu ser det bättre ut, nu finns en konstruktion likt följande med:
Kod: Markera allt
/*!40000 DROP DATABASE IF EXISTS `eshop`*/;

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `eshop` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8
mb4_0900_ai_ci */;

USE `eshop`;


Jag uppdaterar inlägget ovan så slipper folk laga felet om igen...
...
..:
.... /mos

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 13 gäster