Работа с MySQL

Дамп базы

Дамп базы можно снять и залить в phpmyadmin с помощью команд Импорт и Экспорт. Но почти на всех серверах стоит ограничение на размер файла, поэтому снять дамп, а тем более залить, невозможно. Выдается ошибка: вероятно, размер загружаемого файла слишком велик, или подобная. В таком случае нужно воспользоваться консолью. НУЖЕН ДОСТУП ПО ssh. С помощью консольной утилиты mysqldump можно снять дамп, не прилагая никаких усилий.
Команда выглядит так:

    mysqldump -u имя_пользователя_базы -pпароль_без_пробела_после_p название базы_данных > путь_и_имя_файла_дампа. 

Например, для базы с параметрами:

  • имя пользователя базы - base;
  • пароль - 123456;
  • название базы данных - base;
  • путь и название дампа - /home/user/dump_base.sql

команда будет такой

    mysqldump -u base -p123456 base > /home/user/dump.sql

Переходим к импорту. Для того чтобы импортировать(залить) дамп, можно воспользоваться одной простой командой

    mysql -u имя_пользователя_базы -pпароль_без_пробела_после_p название база_данных < путь_и_имя_файла_дампа

Почти как в предыдущей команде. Например,
для базы из предыдущего примера

    mysql -u base -p123456 base < /home/user/dump.sql

Создание пользователя и базы

Чтобы в ручную завести базу данных и пользователя с доступом к ней надо:

    mysql -u root -ppassword
    
    
    CREATE DATABASE base;
    CREATE USER base;
    SET PASSWORD FOR moodle = PASSWORD("123456");
    GRANT ALL PRIVILEGES ON base.* TO base@localhost IDENTIFIED BY '123456';
    FLUSH PRIVILEGES;
    
    
    exit

Снять дамп всех баз в отдельные файлы

    for i in `mysql -u root -ppassword -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -u root -ppassword $i > `date +%Y-%m-%d`-$i; gzip `date +%Y-%m-%d`-$i;done