Miesięczne archiwum: Listopad 2013

Kopia wszystkich baz danych na serwerze

Skrypt bash do zrobienia kopii wszystkich baz danych na serwerze, każdej w osobnym pliku.

#! /bin/bash

TIMESTAMP=$(date +"%F")
BACKUP_DIR="<ścieżka do katalogu backupów>/$TIMESTAMP"
MYSQL_USER="root"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD="<hasło>"
MYSQLDUMP=/usr/bin/mysqldump

mkdir -p "$BACKUP_DIR/mysql"

databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"`

for db in $databases; do
  $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
done

Wczytywanie bazy danych MySQL z pliku

Poniżej 2 sposoby wczytywania bazy danych.

1. Przekierowanie pliku z bazą do mysql.

mysql -u <user> -p <db> < <plik>

lub

mysql -u <user> -p<haslo> <db> < <plik>

jeśil chcemy wykorzystywać w skrypcie – nie pyta wtedy o hasło.

2. Wczytanie pliku bezpośrednio w panelu bazy danych.

Najpierw należy zalogować się do panelu:

mysql -u <user> -p

a następnie wydać następujące komendy:

use <nazwa bazy danych>;

source <plik do wczytania>

Drugi sposób sprawdza się szczególnie w przypadku dużych baz. W przypadku pierwszego sposobu MariaDB wysypywała się dla bazy danych o rozmiarze niecałych 10 gigabajtów.