[MYSQL] Как выгрузить все таблицы базы в отдельные файлы.
[MYSQL] Как выгрузить все таблицы базы в отдельные файлы.
Export MySQL Database into Separate Files per Table
The below code is a bash script which let’s you export, using mysqldump, all tables in a MySQL database to individual files. This will result in one file per MySQL table in the database. You will need to modify the following attributes:
- [USER] – the username to use when connecting to the MySQL instance.
- [PASSWORD] – the password for the above MySQL user.
- [DATABASE] – the name of the MySQL database to export.
- [BACKUP_LOCATION] – the location on the MySQL server where the SQL files will be created.
Бэкапим таблицы в отдельные файлы.
#!/bin/bash
GIT_MYSQL=/[BACKUP_LOCATION]
for T in `mysql -u [USER] -p[PASSWORD] -N -B -e 'show tables from [DATABASE]'`;
do
echo "Backing up $T"
mysqldump --skip-comments --compact -u [USER] -p[PASSWORD] [DATABASE] $T > $GIT_MYSQL/$T.sql
done;
Восстанавливать так:
for i in `ls /BACKUP-DIR`;do mysql -u USER -p PASS NEW_DB < $i;done
Дополнение, если БД повреждена и нельзя понять какие таблицы есть внутри бд, то можно это понять по файлам
Если база не в состояние дать даже список таблиц в бд то забираем только таблицы, каждую по отдельности, для этого заходим в папку где хранятся сами файлы и выбираем
cd /var/lib/mysql/ваша бд/
TABLE=$(ls -la | grep ibd | grep -Eo b_.+[^.]) && echo "$TABLE" | cut -d '.' -f 1