MySQL шпаргалки

Работа с бекапами

Делаем бекап

mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql

Создаём структуру базы без данных

mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql

Если нужно сделать дамп только одной или нескольких таблиц

mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql

Создаём бекап и сразу его архивируем

mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz

Создание бекапа с указанием его даты

mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`

Заливаем бекап в базу данных

mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql

Заливаем архив бекапа в базу

gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE

или так

zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE

Создаём новую базу данных

mysqladmin -u USER -pPASSWORD create NEWDATABASE

Для просмотра списка баз данных можно использовать команду:

mysqlshow -u USER -pPASSWORD

А так же можно посмотреть список таблиц базы:

mysqlshow -u USER -pPASSWORD DATABASE

Бэкап базы MySQL из Docker

Создание дампа базы из контейнера

docker exec -it id_контейнера mysqldump -u root --password=pass DB > /дамп.sql

Перед выполнением этой команды в ней необходимо заменить "id_контейнера" на нужный id (его можно узнать из вывода списка контенйеров командой "docker ps -a"). Также необходимо указать нужный путь и название файла дампа вместо /дамп.sql, куда будет сохранена информация из базы (вне контейнера). И вставить нужного пользователя вместо "root", пароль вместо "pass" и название базы вместо "DB".

Восстановление дампа в базу внутри контейнера

cat /дамп.sql | docker exec -i id_контейнера /usr/bin/mysql -u root --password=pass DB