Как восстановить базу mysql

Возможные ошибки

В процессе восстановления мы можем столкнуться с разными ошибками. Рассмотрим их примеры.

MySQL server has gone away

Во время восстановления базы может выскочить ошибка:

at line xxx: MySQL server has gone away.

Как правило, ее причина в низком значении параметра max_allowed_packet, который отвечает за ограничение выполнения команд из файла. Посмотреть текущее значение можно командой в mysql:

> SHOW VARIABLES LIKE ‘max_allowed_packet’;

Чтобы увеличить значение параметра, открываем конфигурационный файл my.cnf:

vi /etc/my.cnf

* в некоторых версиях СУБД конфиг может находится по пути /etc/my.cnf.d/server.cnf.

В разделе  редактируем или добавляем:


max_allowed_packet = 512M

* значение для данного параметра не обязательно должно быть таким большим.

Перезапускаем mysql:

systemctl restart mariadb || systemctl restart mysql

Row size too large

Ошибка выскакивает после небольшого времени работы восстановления. Более полный текст выглядит, примерно, так:

ERROR 1118 (42000) at line 608: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

Причина: ошибка встречается, если в нашей базе есть большое количество текстовых полей и мы используем таблицы типа INNODB. По умолчанию, они имеют ограничение на объем данных, которые можно хранить в одной строке таблицы.

Решение:

Для решения проблемы мы можем добавить опцию innodb_strict_mode со значением . Данная опция регламентирует более строгий режим работы СУБД. Это грубое решение, которое позволит нам добиться результата, но мы можем выполнить настройку тонко — об этом можно прочитать на соответствующей странице блога mithrandir.ru.

Мы же сделаем все по-быстрому. Открываем конфигурационный файл СУБД — его местоположение зависит от версии и реализации, например:

vi /etc/mysql/mariadb.conf.d/50-server.cnf

* это пример расположения для базы MariaDB 10. Более точное расположение можно найти в файле /etc/my.cnf.

Приводим опцию innodb_strict_mode к виду:


innodb_strict_mode = 0

Перезапускаем сервис:

systemctl restart mariadb

* в данном примере мы перезапустили сервис для mariadb.

Бэкап отдельной таблицы или базы

Не всегда нужны архивные копии всего mysql сервера. Иногда достаточно отдельной базы данных или даже таблицы. Xtrabackup позволяет это сделать. Архивируем только одну базу данных sitemanager.

Для того, чтобы этот способ бэкапа отдельной базы mysql работал, необходим параметр innodb_file_per_table в настройка сервера баз данных.

# xtrabackup --backup --databases "sitemanager" --target-dir=/root/backupdb/sitemanager

Восстановление отдельной базы mysql будет выглядеть так.

# xtrabackup --prepare --databases "sitemanager" --target-dir=/root/backupdb/sitemanager
# systemctl stop mysqld
# mkdir -p /var/lib/mysql.old/sitemanager
# mv /var/lib/mysql/sitemanager /var/lib/mysql.old
# mv /root/backupdb/sitemanager/sitemanager /var/lib/mysql
# chown -R mysql. /var/lib/mysql
# systemctl start mysql

Мы по сути просто скопировали исходные файлы базы из бэкапа в рабочий каталог, предварительно сохранив предыдущую версию базы на всякий случай.

Теперь попробуем из полного бэкапа базы восстановить только одну таблицу. В моем примере я на работающем сервере сделаю восстановление существующей таблицы из полного бэкапа. Если будете восстанавливать на другой сервер, то перед этим вам нужно будет воссоздать исходную структуру таблицы перед тем, как будете восстанавливать данные по предложенному методу.

Готовим бэкап к восстановлению:

# xtrabackup --prepare --export --target-dir=/root/backupdb/full

Идем в консоль mysql и выбираем там таблицу для восстановления. В моем примере это будет таблица b_user_access из базы sitemanager. Смотрим, заполнена ли таблица данными.

mysql> SELECT COUNT(*) FROM sitemanager.b_user_access;
+----------+
| COUNT(*) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)

Делаем DISCARD этой таблицы.

mysql> ALTER TABLE sitemanager.b_user_access DISCARD TABLESPACE;
Query OK, 0 rows affected (0.00 sec)

Discard означает, что будет удален ibd файл таблицы. Теперь нам его нужно скопировать из бэкапа и назначить права для mysql.

# cp /root/backupdb/full/sitemanager/b_user_access.* /var/lib/mysql/sitemanager
# chown mysql. /var/lib/mysql/sitemanager/b_user_access.*

Возвращаемся в консоль mysql и импортируем данные.

mysql> ALTER TABLE sitemanager.b_user_access IMPORT TABLESPACE;
Query OK, 0 rows affected (0.03 sec)

Смотрим, что получилось.

> SELECT COUNT(*) FROM sitemanager.b_user_access;
+----------+
| COUNT(*) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)

Данные восстановлены. Вернулись те же 6 строк, что и были до этого.

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

Общие замечания

База данных может быть удалена независимо от ее состояния: вне сети, только для чтения, подозрительная и так далее. Для просмотра текущего состояния базы данных используйте представление каталога sys.databases.

Удаленная база данных может быть повторно создана только с помощью восстановления из резервной копии. Резервное копирование моментальных снимков базы данных произвести невозможно, поэтому они не могут быть восстановлены.

При удалении базы данных необходимо выполнить резервное копирование базы данных master.

При удалении база данных удаляется из экземпляра SQL Server. Также с физического диска удаляются файлы, используемые базой данных. Если база данных или один из ее файлов во время удаления находится в режиме вне сети, файлы с диска не удаляются. Эти файлы можно удалить вручную при помощи обозревателя Windows. Для удаления базы данных с текущего сервера без удаления файлов из файловой системы используйте процедуру sp_detach_db.

Предупреждение

Удаление файла базы данных, имеющего связанные с ним резервные копии FILE_SNAPSHOT, выполнится успешно, однако файлы базы данных, с которыми связаны моментальные снимки, не будут удалены во избежание объявления недействительными резервных копий, ссылающихся на файл базы данных. Файл усекается, но физически не удаляется, чтобы сохранить резервные копии FILE_SNAPSHOT без изменений. Дополнительные сведения см. в разделе Резервное копирование и восстановление SQL Server с помощью службы хранилища BLOB-объектов Microsoft Azure. Применимо к: с SQL Server 2016 (13.x); до текущей версии.

SQL Server

При удалении моментального снимка базы данных он удаляется из экземпляра SQL Server, а его физические разреженные файлы удаляются из файловой системы NTFS. Сведения об использовании разреженных файлов для моментальных снимков баз данных см. в статье Моментальные снимки базы данных. Удаление моментального снимка базы данных очищает кэш планов для экземпляра SQL Server. Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. Для каждого удаленного хранилища кэша в кэше планов журнал ошибок SQL Server содержит следующее информационное сообщение: «SQL Server обнаружил %d экземпляров, записанных на диск хранилищ кэша для хранилища кэша «%s» (части кэша планов) в результате операций по обслуживанию или изменению конфигурации базы данных». Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени.

Оператор SQL DELETE и удаление данных с условием

Оператор SQL DELETE предназначен для удаления данных из таблицы. Он имеет следующий синтаксис:

DELETE FROM ИМЯ_ТАБЛИЦЫ
WHERE УСЛОВИЕ

Если не указывать условие, из таблицы будут удалены все строки. Кроме того, следует помнить,
что могут быть удалены лишь строки с первичными ключами, на которые не ссылаются внешние ключи в других
таблицах (более подробно об ограничениях удаления — в ).

Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД
не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке
.

А скрипт для создания базы данных «Портал объявлений 1», её таблицы и заполения таблицы данных —
в файле по этой ссылке
.

Пример 1. Итак, есть база портала объявлений. В ней есть таблица Ads, содержащая
данные о объявлениях, поданных за неделю (более подробно — в , пример 7).
Таблица выглядит так:

Id Category Part Units Money
1 Транспорт Автомашины 110 17600
2 Недвижимость Квартиры 89 18690
3 Недвижимость Дачи 57 11970
4 Транспорт Мотоциклы 131 20960
5 Стройматериалы Доски 68 7140
6 Электротехника Телевизоры 127 8255
7 Электротехника Холодильники 137 8905
8 Стройматериалы Регипс 112 11760
9 Досуг Книги 96 6240
10 Недвижимость Дома 47 9870
11 Досуг Музыка 117 7605
12 Досуг Игры 41 2665

Требуется удалить из таблицы строку, имеющую идентификатор 4. Для этого
пишем следующий запрос (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ADS
WHERE Id=4

Пример 2. Можно удалить и несколько строк, если в условии применить
оператор сравнения «больше» или «меньше» (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ADS
WHERE Id>4

В результате в таблице останутся лишь следующие строки:

Id Category Part Units Money
5 Стройматериалы Доски 68 7140
6 Электротехника Телевизоры 127 8255
7 Электротехника Холодильники 137 8905
8 Стройматериалы Регипс 112 11760
9 Досуг Книги 96 6240
10 Недвижимость Дома 47 9870
11 Досуг Музыка 117 7605
12 Досуг Игры 41 2665

Пример 3. Аналогично можно удалять строки с заданными значениями
любого столбца. Удалим, например, строки об объявлениях, за которые выручено менее 10000 денежных единиц
(запрос на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ADS
WHERE Money

В результате в таблице останутся лишь следующие строки:

Id Category Part Units Money
1 Транспорт Автомашины 110 17600
2 Недвижимость Квартиры 89 18690
3 Недвижимость Дачи 57 11970
4 Транспорт Мотоциклы 131 20960
8 Стройматериалы Регипс 112 11760

Оператор SQL DELETE и удаление всех данных из таблицы

Для удаления всех строк из таблицы применяется оператор SQL DELETE без условий, заданных в секции WHERE и
без любых других ограничей и условий, например, диапазона удаляемых строк. Таким образом, для удаления
всех строк синтаксис оператора DELETE будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ИМЯ_ТАБЛИЦЫ

Пример 4. Чтобы удалить все данные из таблицы ADS, достаточно
написать следующий запрос:

DELETE FROM ADS

Если после выполнения этого запроса обратиться к таблице ADS при помощи оператора
SELECT
, применяемого для получения выборки данных, то будет выведено сообщение о том, что эта
таблица не содержит данных.

Оператору DELETE без условий и ограничений аналогичен оператор TRUNCATE TABLE. Он
также удаляет из таблицы все строки, но выполняется намного быстрее.

Пример 5. Запрос на удаление всех данных из таблицы ADS
при помощи оператора TRUNCATE TABLE будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

TRUNCATE TABLE ADS

Примеры запросов к базе данных «Портал объявлений-1» есть также в уроках об
операторах INSERT, UPDATE, HAVING и UNION.

Поделиться с друзьями

Назад Листать Вперёд>>>

Разрешения

Чтобы использовать RESTORE для несуществующей базы данных, пользователь должен обладать разрешениями CREATE DATABASE. Разрешения на выполнение инструкции RESTORE для существующих баз данных базы данных по умолчанию предоставлены членам предопределенных ролей сервера sysadmin и dbcreator, а также владельцу базы данных (dbo).

Сведения о членстве для ролей, имеющих разрешения на выполнение инструкции RESTORE, всегда доступны в экземпляре.

Если база данных доступна и не повреждена, то можно проверить, является ли она членом предопределенной роли базы данных. Члены предопределенной роли базы данных db_owner не имеют разрешений на выполнение инструкции RESTORE.

Эта проверка возможна только в том случае, если база данных доступна и не повреждена. Это не всегда так при выполнении инструкции RESTORE, члены предопределенной роли базы данных db_owner не имеют разрешений на выполнение инструкции RESTORE.

Разрешения на выполнение инструкции RESTORE даются ролям, в которых данные о членстве всегда доступны серверу. Проверка членства в предопределенной роли базы данных возможна только в том случае, если база данных доступна и не повреждена. Периодически при выполнении инструкции RESTORE, члены предопределенной роли базы данных db_owner не имеют разрешений на выполнение инструкции RESTORE.

Восстановление из зашифрованной копии требует разрешений VIEW DEFINITION на сертификат или асимметричный ключ, используемые для создания зашифрованной резервной копии.

Ограничения

Системные базы данных удалить невозможно.

Инструкция DROP DATABASE должна выполняться в режиме автоматической фиксации и не разрешена в явной или неявной транзакции. Режим автоматической фиксации — это режим управления транзакцией по умолчанию.

Предупреждение

Удалить базу данных, которая используется в текущий момент времени, невозможно. Это означает, что существуют блокировки на чтение или запись любым пользователем. Одним из способов отключить пользователей от базы данных является использование инструкции ALTER DATABASE для перевода базы данных в режим SINGLE_USER. В этой стратегии следует выполнять инструкции ALTER DATABASE и DROP DATABASE в одном и том же пакете, чтобы избежать появления другого подключения, занимающего один разрешенный пользовательский сеанс. См. .

SQL Server

Любые моментальные снимки базы данных должны быть удалены перед удалением базы данных.

При удалении базы данных, настроенной в качестве базы Stretch Database, не удаляются удаленные данные. В таком случае удаленные данные следует удалять вручную.

База данных SQL Azure

Для удаления базы данных необходимо соединение с базой данных master.

Инструкция DROP DATABASE должна быть единственной инструкцией в пакете SQL, и ее можно удалить только одновременно с базой данных.

Azure Synapse Analytics

Для удаления базы данных необходимо соединение с базой данных master.

Инструкция DROP DATABASE должна быть единственной инструкцией в пакете SQL, и ее можно удалить только одновременно с базой данных.

Пример с модификатором LIMIT

Давайте рассмотрим пример MySQL DELETE, в котором мы используем модификатор LIMIT для управления количеством удаленных записей.
Например:

MySQL

DELETE FROM contacts
WHERE last_name = ‘Markoski’
ORDER BY contact_id DESC
LIMIT 1;

1
2
3
4

DELETEFROMcontacts

WHERElast_name=’Markoski’

ORDER BYcontact_idDESC

LIMIT1;

В этом MySQL примере DELETE удалит одну запись из таблицы contacts (как указано в LIMIT 1), где last_name — ‘Markoski’. DELETE сортируется в порядке убывания contact_id, поэтому только запись с наибольшим contact_id, чье имя last_name ‘Markoski’ будет удалено из таблицы. Все остальные записи в таблице contacts с last_name = ‘Markoski’ останутся в таблице.

Если вы хотите вместо этого удалить наименьший contact_id, чье last_name является ‘Markoski’, вы можете переписать оператор DELETE следующим образом:

MySQL

DELETE FROM contacts
WHERE last_name = ‘Markoski’
ORDER BY contact_id ASC
LIMIT 1;

1
2
3
4

DELETEFROMcontacts

WHERElast_name=’Markoski’

ORDER BYcontact_idASC

LIMIT1;

Или вы можете удалить последнюю запись в таблице contacts со следующим оператором DELETE (при условии, что contact_id является порядковым номером):

MySQL

DELETE FROM contacts
ORDER BY contact_id DESC
LIMIT 1;

1
2
3

DELETEFROMcontacts

ORDER BYcontact_idDESC

LIMIT1;

Как исправить ошибки в MS SQL с помощью Recovery Toolbox for SQL Server

Для восстановления поврежденной базы данных можно обратиться к помощи Recovery Toolbox for SQL Server. Для исправления ошибки (Error), следует воспользоваться пошаговой инструкцией восстановления данных из файла *.mdf, который был поврежден. Для этого необходимо:

  1. Скачать Recovery Toolbox for SQL Server.
  2. Установить программу следуя инструкциям и запустить ее.
  3. Из списка файлов выбрать файл *.mdf, который был поврежден.
  4. Осуществить предварительный просмотр тех данных, которые в процессе выполнения программы могут быть подвергнуты извлечению из базы MS SQL сервер, которая подверглась повреждению.
  5. Выбрать наиболее приемлемый способ, которым будут экспортироваться данные:
  6. сохранением на диск в качестве SQL-скрипта;
  7. выполнением SQL-скрипта в самой БД.
  8. Произвести выборку информации, требующей восстановления и сохранения.
  9. Начать восстановление нажатием Start recovery.

Данная программа создавалась, чтобы облегчить процесс восстановления поврежденных БД. Специально разработанная, оптимизированная для восстановления SQL Server, утилита поможет устранить ошибки и внести правки в разные типы повреждений *.mdf файлов и базы данных MS SQL Server.

Как становится понятно, для исправления ошибок и восстановления БД необходимо уметь пользоваться различными инструментами. Читайте, изучайте материалы по данной теме. Если возникнут вопросы – обязательно задавайте.

Как создать базу данных в MySQL?

Для создания базы данных необходимо придумать ей имя.

Вариант #1: Создание БД с помощью запроса в терминале

При создании базы данных рекомендую сразу прописывать кодировку для неё, чтобы потом не было проблем с русским языком в таблицах.

Синтаксис создания базы данных.

CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;

1 CREATEDATABASEdb_nameCHARACTER SETutf8COLLATEutf8_general_ci;

или

CREATE SCHEMA db_name CHARACTER SET utf8 COLLATE utf8_general_ci;

1 CREATESCHEMAdb_nameCHARACTER SETutf8COLLATEutf8_general_ci;

Вариант #3: Создание БД с помощью PHP (PDO и MySQLi)

Создание БД, используя модуль PDO для PHP.

<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;

try {
// Открываем соединение
$db = new PDO(«mysql:host=$server», $user, $password);
// Создание исключения при ошибке
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Запрос на создание БД
$sql = «CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci»;
// Выполняем запрос
$db->exec($sql);
echo «База данных успешно создана!»;
}
catch(PDOException $e) {
echo «Ошибка при создании базы данных: » . $e->getMessage();
}

// Закрываем соединение
$db = null;
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

<?php

$server=»localhost»;

$user=»root»;

$password=»MySafePass4!»;

try{

// Открываем соединение

$db=newPDO(«mysql:host=$server»,$user,$password);

// Создание исключения при ошибке

$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

// Запрос на создание БД

$sql=»CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci»;

// Выполняем запрос

$db->exec($sql);

echo»База данных успешно создана!»;

}

catch(PDOException$e){

echo»Ошибка при создании базы данных: «.$e->getMessage();

}
 
// Закрываем соединение

$db=null;

?>

Создание БД, используя модуль MySQLi (объектно-ориентированный подход).

<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;

// Создаем соединение
$db = new mysqli($server, $user, $password);
// Проверяем успешность соединения
if ($db->connect_error) {
die(«Соединение не удалось: » . $db->connect_error);
}

// Запрос на создание БД
$sql = «CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci»;
// Выполняем запрос
$response = $db->query($sql);
if ($response) {
echo «База данных успешно создана!»;
} else {
echo «Ошибка при создании базы данных: » . $db->error;
}

// Закрываем соединение
$db->close();
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

<?php

$server=»localhost»;

$user=»root»;

$password=»MySafePass4!»;

 
// Создаем соединение

$db=newmysqli($server,$user,$password);

// Проверяем успешность соединения

if($db->connect_error){

die(«Соединение не удалось: «.$db->connect_error);

}

 
// Запрос на создание БД

$sql=»CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci»;

// Выполняем запрос

$response=$db->query($sql);

if($response){

echo»База данных успешно создана!»;

}else{

echo»Ошибка при создании базы данных: «.$db->error;

}
 
// Закрываем соединение

$db->close();

?>

Создание БД, используя модуль MySQLi (процедурный подход).

<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;

// Создаем соединение
$db = mysqli_connect($server, $user, $password);
// Проверяем успешность соединения
if (!$db) {
die(«Соединение не удалось: » . mysqli_connect_error());
}

// Запрос на создание БД
$sql = «CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci»;
// Выполняем запрос
$response = mysqli_query($db, $sql);
if ($response) {
echo «База данных успешно создана!»;
} else {
echo «Ошибка при создании базы данных: » . mysqli_error($db);
}

// Закрываем соединение
mysqli_close($db);
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

<?php

$server=»localhost»;

$user=»root»;

$password=»MySafePass4!»;

 
// Создаем соединение

$db=mysqli_connect($server,$user,$password);

// Проверяем успешность соединения

if(!$db){

die(«Соединение не удалось: «.mysqli_connect_error());

}
 
// Запрос на создание БД

$sql=»CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci»;

// Выполняем запрос

$response=mysqli_query($db,$sql);

if($response){

echo»База данных успешно создана!»;

}else{

echo»Ошибка при создании базы данных: «.mysqli_error($db);

}
 
// Закрываем соединение

mysqli_close($db);

?>

7.4. Как сделать импорт или экспорт базы данных через SSH? Работа с БД по SSH

Для импорта сначала загружаете дамп на сервер. Дамп должен быть в формате .sql
Далее подключаетесь на сервер по ssh и выполняете команду:

mysql -u пользователь_БД -p имя_БД < файл_дампа_БД

В случае неудачи всегда будет указанна ошибка из за которой импорт не удался или прервался.

Для экспорта существует утилита, которая позволяет сделать бэкап базы данных в традиционном SQL-формате – mysqldump. Общий вид в командной строке:

mysqldump –u пользователь_БД -p имя-БД > файл_дампа_БД

Также утилита имеет много опций и ключей, рассмотрим несколько основных полезных примеров по использованию mysqldump.

mysqldump -–all-databases -uUSER -pPASSWORD > /path/mysql-db-server.sql

Команда с опцией -–all-databases сохраняет все базы данных пользователя USER на MySQL-сервере.

mysql -uUSER -pPASSWORD < /path/mysql-db-server.sql

Восстанавливает все БД mysql пользователя USER. Если USER — root — то все БД.

mysqldump -uUSER -pPASSWORD DATABASE table1 table2 table3 > /path/ DATABASE_t1-t2-t3.sql

Сохраняет таблицы table1, table2, table3, из базы DATABASE в файле DATABASE_t1-t2-t3.sql.

mysqldump —no-data -uUSER -pPASSWORD DATABASE > /path/DATABASE-schema.sql

Указав опцию —no-data команда сохранит структуру таблиц (без данных) в файле DATABASE_schema.sql.

mysqldump —add-drop-table -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql

Опция —add-drop-table добавит команду DROP TABLE (удаление таблицы) перед созданием таблиц.

mysqldump —databases -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql

Опция —databases добавит команду CREATE DATABASE перед созданием базы данных. Это позволяет не создавать и не задавать базу данных при восстановлении.

mysqldump -uUSER –pPASSWORD –h192.168.0.1 DATABASE > /path/DATABASE.sql

Команда сделает бэкап базы DATABASE с сервера с ip-адресом 192.168.0.1

mysqldump —max_allowed_packet=8M -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Опция —max_allowed_packet=8M принудительно изменит размер пакета считываемых данных в оперативную память размером в 8 мегабайт.

mysqldump —quick -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Опция —quick заставляет команду записывать данные непосредственно на диск.

mysqldump —default-character-set=cp1251 -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Принудительно указываем кодировку cp1251.

mysqldump -uUSER –pPASSWORD DATABASE | gzip -c /path/DATABASE.sql.gz

Этой последовательностью получаем архивированный бэкап с помощью утилиты gzip (для последующего восстановления необходимо будет предварительно извлечь из архива).

Заливаем архив бекапа в базу
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

где:

USER — это имя пользователя базы данных;

PASSWORD — пароль пользователя;

SERVER — это имя (или ip-адрес) сервера базы данных;

DataBase — наименование базы данных;

NameFile.sql — имя файла, в который будет помещен дамп базы данных.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: