- Консольные команды для работы с MySQL
- Загрузка, выгрузка дампа
- Проверка работы сервера MySQL
- Как сделать дамп базы MySQL / MariaDB
- Синтаксис и базовая команда
- Примеры создания дампа MySQL
- 1. С последующим архивированием
- 2. Для одновременно нескольких баз
- 3. Для всех баз одной командой
- 4. Резервирование только структуры базы
- 5. Создание копии определенной таблицы
- 6. Резервирование прав доступа на СУБД
- 7. Проигнорировать определенную таблицу
- Учетная запись
- Скрипт для резервного копирования
- Резервное копирование в phpMyAdmin
- Возможные проблемы
- Incorrect key file for table
- Читайте также
- MySql. Загрузка дампа базы данных с помощью консоли
- Импорт и экспорт баз данных MySQL и MariaDB
- Требования
- Экспорт данных
- Импорт данных
- Заключение
Консольные команды для работы с MySQL
В данной статье рассмотрены полезные сочетания команд ОС Linux, которые помогут работать с MySQL, в частности созданием и загрузком дампа, на серверах хостинга и VDS.
Более подробную информацию о каждой из команд можно получить, набрав man имя_команды
Загрузка, выгрузка дампа
- Если у Вас есть объемный дамп базы или таблица из MySQL (например, файл имеет имя dump.sql) и через phpMyAdmin не получается импортировать его в базу database , это можно сделать через консоль:
mysqldump -u user -p database > dump.sql mysqldump -u user -p database table > table.sql
mysqldump --all-databases -u user -p > all_dump_DB.sql
mysql --max_allowed_packet=64M -u user -p database < dump.sql
mysqldump -u user -p database --default-character-set=utf8 > dump.sql
Проверка работы сервера MySQL
Если на сервере возникают проблемы с производительностью, то весьма вероятно, что причинами их является сервер MySQL. Ниже приведены некоторые команды, которые могут помочь идентифицировать проблему (большинство действий могут быть выполнены только на VDS).
Обзор списка выполняющихся процессов
# mysql mysql> show full processlist;
Особое внимание следует обратить на запросы, находящиеся в состоянии “copying to temp table”, если такие присутствуют.
Получение списка медленных запросов
MySQL может быть настроен таким образом, чтобы он сохранял информацию обо всех запросах, исполняющихся больше 10 секунд (настраивается). Лог находится в файле /var/log/mysql/mysql-slow.log . Если такого файла на сервере нет, достаточно раскомментировать опцию log_slow_queries в файле /etc/mysql/my.cnf (или добавить, если таковая отсутствует), а затем перезапустить сервер командой
Строка должна выглядеть следующим образом:
log_slow_queries = /var/log/mysql/mysql-slow.log`
Как сделать дамп базы MySQL / MariaDB
Обновлено: 12.02.2023 Опубликовано: 15.07.2016
В статье рассмотрим общие принципы выполнения резервного копирования СУБД MySQL или MariaDB. Также рассмотрим некоторые примеры часто используемых ключей и параметров резервирования.
Синтаксис и базовая команда
Создание дампа выполняется из командной строки Linux или Microsoft с помощью утилиты mysqldump. Она идет в составе с пакетом mysql/mariadb (mysql-client) и может быть запущена как локально на сервере СУБД, так и с удаленного компьютера. Общий синтаксис:
* в данном примере мы создадим резервную копию базы base и поместим его в папку /tmp, назвав сам файл dump.sql. Подключение к базе на сервере 127.0.0.1 происходит от пользователя root. Это самый простой пример создания дампа MySQL. Базовые параметры команды mysqldump:
Параметр | Описание |
---|---|
-h | Адрес сервера, к которому нужно подключиться. |
-u | Учетная запись, от которой выполняется резервное копирование. Необходимо, чтобы у пользователя были соответствующие права. |
-p | Пароль учетной записи. Его можно ввести в команде, например -p12345 (для скрипта) или оставить -p (безопаснее). |
* полный перечень параметров смотрите в официальном руководстве.
Примеры создания дампа MySQL
1. С последующим архивированием
* в данном примере мы сначала создали переменную DBNAME, в которую внесли значение с именем базы, которую необходимо забэкапить. После выполняем команду mysqldump, результат выполнения которой по конвееру отдаем архиватору gzip. В результате мы получит дамп по пути /tmp/.sql.gz Или с подробным выводом информации на экран (дольше по времени):
2. Для одновременно нескольких баз
3. Для всех баз одной командой
4. Резервирование только структуры базы
Для уточнения, это создание копии только самих таблиц без данных. Делается добавлением параметра --no-data
5. Создание копии определенной таблицы
6. Резервирование прав доступа на СУБД
Позволяет выгрузить все учетные записи с паролями. Удобно для переноса СУБД на новый сервер без потери доступа к нему.
* после восстановления этого дампа, необходимо в sql shell выполнить команду flush privileges;
7. Проигнорировать определенную таблицу
Учетная запись
В наших примерах мы создаем дамп от пользователя root. Также можно задействовать любую учетную запись, у которой есть права на базу, дамп которой мы хотим сделать. Если же нам нужна отдельная запись с минимальными правами, достаточными для резервного копирования, создаем ее SQL-командой:
* в данном примере мы создадим пользователя backup с паролем backup123. Теперь дадим разрешение созданной учетной записи выполнять подключение и создание резервной копии:
> GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER, LOCK TABLES, PROCESS, EXECUTE ON *.* TO backup@localhost;
Также мы можем создать локальный конфигурационный файл для пользователя системы, из под которого будет запускаться утилита mysqldump. В нем мы можем указать некоторые опции, чтобы не вводить их каждый раз. Создаем файл:
Скрипт для резервного копирования
Для повседневных операций по резервному копированию MySQL рекомендуется написать скрипт и запускать его через cron. Подробнее процесс описан в статье Пример скрипта для создания резервной копии MySQL (для Linux).
Резервное копирование в phpMyAdmin
В качестве графического инструмента для работы с MySQL/MariaDB используется phpMyAdmin. Разберем, как с его помощью сделать экспорт данных. В верхней части меню кликаем по Экспорт: В разделе «Способ экспорта» ставим переключатель в положение Обычный: * обычный режим откроет дополнительные опции для резервного экспорта данных. Выбираем компрессию, например, zip: И в нижней части окна нажимаем OK. Начнется загрузка файла с резервной копией на компьютер.
Возможные проблемы
Incorrect key file for table
mysqldump: Error 1034: Incorrect key file for table '
Решение: в зависимости от причины, решений будет несколько.
1. Проще всего сначала проверить место на диске. В конфигурационном файле СУБД (как правило, /etc/my.cnf) можно найти опцию tmpdir — она указывает на каталог, который используется под создание временных таблиц. Если опции нет, то используется путь /tmp.
Необходимо, чтобы для данного раздела было достаточно места. Проверить можно командой:
2. Если наша таблица повреждена, то пробуем ее востановить. Данный процесс зависит от типа таблицы, с которой возникла проблема.
В командной оболочке SQL вводим:
После повторяем попытку создать резервную копию.
б) Если таблица типа INNODB.
Открываем конфигурационный файл СУБД:
В радел [mysqld] добавим опцию:
[mysqld]
.
innodb_force_recovery = 1
Перезапускаем сервер баз данных, например:
Пробуем сделать резервную копию. Если получим такую же ошибку, меняем значение innodb_force_recovery с 1 на 2:
[mysqld]
.
innodb_force_recovery = 2
И так по кругу, до значения 6, пока не получим положительный результат.
Параметр innodb_force_recovery может оказаться опасным, так как при его использовании возможны потери данных. Чем ниже значение, тем меньше рисков. Если пришлось поднять значение выше 2, то необходимо внимательно проверить наличие важной информации в базе.
Читайте также
Для восстановления базы читайте инструкцию Как восстановить базу MySQL
MySql. Загрузка дампа базы данных с помощью консоли
Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
В данной статье рассмотрим загрузку дампа базы данных MySql с помощью консоли.
Спрашивается зачем нам это нужно? Представим ситуацию, что наша база данных имеет большой размер (гигабайты).
Загрузить подобный дамп с помощью клиентских приложений для работы базой данных не представляется возможным так как они просто напросто повиснут намертво. Шанс того, что загрузка будет выполнена успешно конечно есть, но он ничтожно мал и вам придется потратить на это много времени и возможно нервов.
Решением данной проблемы является загрузка базы данных на MySql сервер с помощью консоли.
Для загрузки дампа(бекапа) базы данных потребуется доступ к машине на которой установлен MySql сервер.
Если же машина расположена в дата центре или физически недоступна, можно воспользоваться ssh протоколом и соединиться удаленно с машиной где установлен сервер.
Залить дамп(бекап) базы данных через MySql клиент с помощью консоли или ssh можно следующей командой:
mysql my_database -uroot -proot < mydump.sql
mysql ИМЯ_БАЗЫ -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ < ПУТЬ_ДО_SQL_ФАЙЛА
В случае верно заполненных данных необходимо подождать некоторое время, до тех пор, пока дамп базы данных не будет загружен.
Обычно этот процесс занимает несколько минут времени.
Хотелось бы напомнить, что данные консольные команды работают только в терминале linux.
Для запуска и выполнения их на Windows желательно воспользоваться PowerShell или сторонним консольным терминалом.
К примеру можно воспользоваться: ConEmu
Но вы можете пользоваться совершенно любым понравившемся вам консольным терминалом.
Импорт и экспорт баз данных MySQL и MariaDB
При работе с данными очень важно уметь импортировать и экспортировать базы данных. Дампы данных можно использовать для резервного копирования и восстановления БД, что позволяет в случае необходимости получить доступ к одной из предыдущих версий данных или переместить их на новый сервер или среду разработки.
Дампы MySQL и MariaDB очень просты в работе. Это руководство научит вас экспортировать и импортировать базы данных с помощью дампа MySQL или MariaDB.
Требования
- Сервер Linux.
- Предварительно установленная система управления базами данных MySQL или MariaDB.
- База данных и пользователь СУБД.
Экспорт данных
Консольная утилита mysqldump позволяет экспортировать данные в текстовый файл SQL, который можно легко переместить. Для этого вам понадобится имя БД, а также учётные данные пользователя, у которого есть как минимум право на чтение БД.
Чтобы экспортировать БД, используйте такую команду:
mysqldump -u username -p database_name > data-dump.sql
- username – имя пользователя БД;
- database_name – имя БД, которую нужно экспортировать;
- data-dump.sql – файл в текущем каталоге, в который будут экспортированы данные.
Вывод этой команды не отображается на экране. Чтобы убедиться в том, что данные были импортированы успешно, проверьте содержимое дампа:
Файл дампа MySQL должен начинаться примерно так:
-- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64)
--
-- Host: localhost Database: database_name
-- ------------------------------------------------------
-- Server version 5.7.16-0ubuntu0.16.04.1
Если во время экспорта данных произошла ошибка, утилита mysqldump сообщит вам о ней.
Импорт данных
Чтобы импортировать дамп, нужно создать новую БД MySQL или MariaDB, в которую будут перемещены данные из дампа.
Войдите как root или другой пользователь с расширенными привилегиями.
Эта команда откроет командную оболочку MySQL. Создайте новую БД, например, new_database.
CREATE DATABASE new_database;
На экране появится вывод, подтверждающий, что БД была создана:
Query OK, 1 row affected (0.00 sec)
Закройте оболочку MySQL (CTRL+D). С помощью обычной командной строки импортируйте дамп:
mysql -u username -p new_database < data-dump.sql
- username – имя пользователя, у которого есть доступ к БД.
- newdatabase – имя новой БД.
- data-dump.sql – имя дампа, который нужно импортировать.
В случае успешного выполнения команды вывод не отображается на экране. Если во время выполнения возникла какая-либо ошибка, mysql выведет их в терминал. Чтобы убедиться, что данные импортированы успешно, войдите в оболочку MySQL и проверьте БД. Для этого можно использовать:
USE new_database;
SHOW TABLES;
Заключение
Теперь вы умеете перемещать данные MySQL и MariaDB с помощью дампа. Утилита mysqldump имеет множество дополнительных параметров, при помощи которых можно настраивать дампы; подробнее об этом – в официальной документации mysqldump.
Adblockdetector