Перейти до основного вмісту
Головна
нотатки кодера

Navigation

  • Головна
  • Про мене
  • Портфоліо
User account menu
  • Вхід

Рядок навіґації

  1. Головна

Імпорт/експорт дампів бази MySQL

від vetal, 9 листопада, 2011
Категорія
Адміністрування
  • Щоб додати коментар, увійдіть або зареєструйтесь

MySQLДавайте спершу поглянемо що таке база даних MySQL?

MySQL це система управління реляційними базами даних (СУБД), котру було встановлено більше 11 мільйонів разів. Програма працює як сервер, що надає багатокористувацький доступ до баз даних. MySQL володіє та утримується однією некомерційною фірмою, шведською компанією MySQL AB, в даний момент це дочірня компанія Sun Microsystems, що тримає авторські права на більшу частину коду. Вихідний код проекту доступний на умовах GNU General Public License, а також в різних власних угодах.

Навіщо використовувати імпорт чи експорт SQL дамп файл (сценарій)?

Я маю дві бази MySQL розміщені десь на сервері. Я підключаюсь за допомогою безпечного shell з'єднання. Я не знаю всіх деталей конфігурації цього серверу, але, очевидно, він має MySQL встановлений/налаштований правильно і можна припустити, що будь-який інший речі 'ймовірно' також. Мені потрібно повністю скопіювати одну базу даних в іншу (зараз одна дуже велика, а інша пуста).

І найпростіший шлях зробити це - використати sql експорт в файл дампу та sql імпорт з файлу дампу до mySQL бази даних.

Як створити файл дампу mySQL (експортувати базу даних в файл sql)?

Найпростіший шлях експортувати дані це використати наступний синтаксис в командному рядку:

mysqldump -u USER -p PASSWORD DATABASE > filename.sql 

На приклад ми маємо базу даних з наступними параметрами:

Ім'я користувача  baseu01
Пароль  h4z56s3
Ім'я бази даних  database01
Ім'я файлу експорту sql  export.sql

Відповідний командний рядок для експорту це:

mysqldump -u baseu01 -p h4z56s3 database01 > filename.sql 

Після виконання команди експорту ви матимете файл "export.sql" в вашій папці.

Приклад як може виглядати ваш файл експорту sql:

-- phpMyAdmin SQL Dump
-- version 3.3.7deb6
-- 
--
-- Хост: localhost
-- Час створення: Бер 19 2012 р., 14:22
-- Версія сервера: 5.1.49
-- Версія PHP: 5.3.3-7+squeeze3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- БД: `c17scan_biotech`
--

-- --------------------------------------------------------

--
-- Структура таблиці `backend_layout`
--

CREATE TABLE IF NOT EXISTS `backend_layout` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL DEFAULT '0',
  `t3ver_oid` int(11) NOT NULL DEFAULT '0',
  `t3ver_id` int(11) NOT NULL DEFAULT '0',
...

То що ж робити з файлом дампу? 

Це просто... 

Використовуйте його як архів для відновлення в разі якщо щось трапиться і ви втратите базу даних або зламається сервер - ви завжди можете імпортувати файл дампу sql назад в mySQL базу даних.

Як імпортувати файл дампу sql в базу даних mySQL?

Сценарій: сервер зламався і ви маєте файл дампу mysqlрозташований на вашому жорсткому диску. Спершу інсталюйте базу даних mySQL - тоді створіть базу даних, користувача і пароль бази даних, а тоді використайте наступну команду в консолі:

mysql -u username -p password database_name < filename.sql

Якщо використати той самий приклад що і для експорту, командний рядок буде:

mysql -u baseu01 -p h4z56s3 database01 < export.sql 

Розширені параметри для експорту та імпорту бази даних

Як експортувати тільки структуру бази даних MySQL

Якщо вам більше не потрібні дані в таблицях вашої бази (що малоймовірно), просто додайте –no-data ключ, що експортує тільки структуру баз даних. На приклад, синтаксис такої команди:

mysqldump -u username -ppassword –no-data database_name > dump.sql 

Як вивантажити тільки дані з бази MySQL

Якщо ви хочете вивантажити тільки дані, використовуйте –no-create-info ключ. З цими налаштуваннями, цей дамп не буде створювати базу даних, таблиці, поля чи інші структури під час імпорту. Використовуйте це в разі якщо ви точно знаєте, що ви маєте базу даних з точно такою самою структурою, де вам потрібно тільки оновити дані. Синтаксис:

mysqldump -u username -ppassword –no-create-info database_name > dump.sql

Як створити дамп декількох баз даних MySQL в файл sql

-databases опція дозволить вам вказати більше 1 бази даних. Приклад синтаксису:

mysqldump -u username -ppassword –databases db_name1 [db_name2 ...] > dump.sql 

Як створити дамп усіх баз даних на сервері MySQL

Для створення дампу усіх баз даних використовуйте опцію –all-databases, та без імен баз даних.

mysqldump -u username -ppassword –all-databases > dump.sql 

How to Online Backup InnoDB Tables

Резервне копіювання бази даних неминуче зробить сервер MySQL недоступним для додатків тому, що під час експорту усі таблиці отримують глобальне блокування читання використовуючи FLUSH TABLES WITH READ LOCK на початку виконання команди дампу і аж до його закінчення. Отже, хоча заяви на READ (читання) можуть відбуватись, усі заяви на INSERT (вставка), UPDATE (оновлення) і DELETE (видалення) будуть поміщені в чергу через блокування таблиць, наче MySQL не працює чи зупинився. Якщо ви використовуєте InnoDB, опція –single-transaction це шлях до зменшення часу блокування майже до нуля, ніби виконується онлайн резервування. Це працює через зчитування координат в бінарному журналі як тільки блокування було отримано, і блок одразу знімається.

Синтаксис:

mysqldump -u username -ppassword –all-databases –single-transaction > dump.sql 
MySQL
import
export

Категорії

  • Історії
  • Адміністрування
  • Поради
  • Програмування

Останні матеріали

  • SCP з докачуванням
    1 рік 9 місяців ago
  • Таблиці IPFW
    1 рік 11 місяців ago
  • Як видалити порт FreeBSD з залежностями
    1 рік 11 місяців ago
  • screen — кращий друг адміна
    1 рік 11 місяців ago
  • gd-png: fatal libpng error
    1 рік 11 місяців ago
  • OpenCart облік прибутку
    1 рік 11 місяців ago
  • Fail2Ban: Постійний бан
    2 роки ago
  • Як отримати список змінених файлів між ревізіями
    7 років ago
  • Що робити якщо svn: database disk image is malformed
    8 років ago
  • Як виправити пошкоджений /etc/sudoers файл
    9 років 1 місяць ago

1980-2025 © All rights reserved. vetal.insky.one // нотатки кодера.