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