Если говорить о бекапе, то я бы разделил на два случая/варианта.
1ый, когда
нет доступа к шэлу (ssh)
2ой, когда
есть доступ к шэлу (ssh)
Вариант 1ый, когда
нет доступа к шэлу (ssh)
(по идее уже описали выше много, но нужно и можно добавить следующее)
Дополнение 1:1.1Для
phpMyAdmin в файле настроек
config.inc.php можно прописать две переменные:
$cfg['SaveDir'] = 'полный_физический_путь_на_сервере_до_папки_#1';
$cfg['UploadDir'] = 'полный_физический_путь_на_сервере_до_папки_#2';
Первый путь - это директория куда на сервере при "Импорте" можно сохранить файл дампа (импорта).
Второй путь - это директория откуда на сервере при "Экспорте" можно взять файл дампа.
ВАЖНО!!!Создавая данные папки, т.е. указывая данный путь, следует осозновать два факта:
- данная директория должна быть доступна через FTP
- данная директория должна или находится ниже корня вашего сайта или находится в папке, защищенной не только от листинга, но и защищенной как минимум паролем от доступа с помощью файла .htaccess
Пути могут совпадать, но тогда нужно быть очень аккуратными, чтобы случайно при "Импорте" не перезаписать (читай удалить) старый файл импорта.
Перезаписывать или нет контролируется переменной "Перезаписать существующий(е) файл(ы)".
1.2После импорта файл дампа можно скачать через FTP или HTTP (что не рекомендуется - читай важное примечание выше).
Вариант 2ой, когда
есть доступ к шэлу (ssh)
Дополнение 2:Зная пароль от вашей базы данных или пароль пользователя root,
можно делать импорт базы данных через командную строку, что намного быстрее и в определенной степени надежнее.
Шаги очень простые:2.1Создаем папку, куда будем делать импорт.
2.2Далее нам нужно знать правильную кодировку нашей базы данных и решить, хотим ли мы сохранять информацию о данной кодировке в файле импорта (дампе).
И выполнить соответствующую команду и после ввести пароль от данного пользователя.
2.2.1Если мы хотим
сохранить информацию о кодировке нашей базы данных:
mysqldump -u <имя_пользователя> -p --create-options --default-character-set=<правильная_кодировка_базы_данных> <имя_базы_данных> > /<полный_путь_папки>/<имя_файла>.sql
2.2.2Если мы хотим
не сохранять информацию о кодировке нашей базы данных:
mysqldump -u <имя_пользователя> -p --create-options --compatible=mysql40 --default-character-set=<правильная_кодировка_базы_данных> <имя_базы_данных> > /<полный_путь_папки>/<имя_файла>.sql
К примеру, имя пользователя
root, кодировка нашей базы данных
utf8, имя базы данных
coppermine и мы хотим
сохранить информацию о кодировке нашей базы данных, тогда выполняем команду:
mysqldump -u root -p --create-options --default-character-set=utf8 coppermine > /home/dump/coppermine.sql
и после вводим пароль от данного пользователя
К примеру, имя пользователя
user, кодировка нашей базы данных
cp1251, имя базы данных
gallery и мы хотим
не сохранять информацию о кодировке нашей базы данных, тогда выполняем команду:
mysqldump -u user -p --create-options --compatible=mysql40 --default-character-set=cp1251 gallery > /home/dump/gallery.sql
и после вводим пароль от данного пользователя
2.3Полученный файл импорта можно запаковать и скачать к себе, к примеру, домой
Дополнение 3:Зная пароль от вашей базы данных или пароль пользователя root,
можно делать экспорт базы данных через командную строку, что намного быстрее и в определенной степени надежнее.
Шаги очень простые:3.1Нужно иметь готовый и правильный файлы дампа для импорта в формате SQL и знать папку, где файлы лежат.
3.2Выполняем команду на вход в базу данных:mysql -u <имя_пользователя> -p
3.3Вводим пароль MySQL от данного пользователя3.3.1--> Если базы данных не существует, то нужно её создать в правильной кодировке, для этого выполнить команду:
CREATE DATABASE `<имя_базы_данных>` DEFAULT CHARACTER SET <кодировка_базы_данных> COLLATE <сравнение_базы_данных>;
(у данного пользователя MySQL должны быть права на создание баз данных)
К примеру, имя базы данных coppermine, а кодировка базы данных utf8:
CREATE DATABASE `coppermine` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3.4Вводим команду на смену базы данных:use <имя_базы_данных>;
(обратите внимание на точку с запятой в конце строки)
3.5Далее нам нужно знать правильную кодировку базы данных. Т.е. не кодировку самого файла, а именно правильную кодировку базы данных.
Подразумеваетя, что данная кодировка - это кодировка созданной ранее или созданой вами в данном примере базы данных.
И выполнить соответствующую команду для экспорта базы данных и после ввести пароль от данного пользователя.
set names <правильная_кодировка_базы_данных>; source /<полный_путь_папки>/<имя_файла>.sql;
К примеру, кодировка нашей базы данных
utf8, тогда выполняем команду:
set names utf8; source /<полный_путь_папки>/<имя_файла>.sql;
3.6Важно! Смотрим, чтобы не было
Warnings:Если
Warnings: встречаются постонно, значит в 90% случаев вы что-то напутали с кодировкой.
3.7Проверяем через phpMyAdmin, чтобы кодировка базы данных была читаема, т.е.
именно русский текст отображался нормально!