Програма mysql

Клієнт mysql представляє собою інтерактивну програму, яка використовується для підключення до сервера, відправлення запитів і перегляду результатів їх виконання. Програма mysql може працювати в пакетному режимі, що дозволяє виконувати записані у файлі запити, перенаправивши командний вхід на читання цього файлу. Це можна здійснити, наприклад, наступним чином: mysql-u sampadm-р-h cobra.snake.net sampdb <my_query_file.

При запуску в інтерактивному режимі програма mysql виводить на екран рядок підказки "mysql>", показуючи, що очікує введення команди. Для запуску запиту введіть його текст (використовуючи, якщо необхідно, кілька рядків), завершивши введення символом (крапка з комою) або "\ g". Програма відправить запит на сервер, відобразить результати виконання цього запиту і знову виведе рядок підказки, демонструючи свою готовність до виконання наступного запиту.

Рядок підказки mysql (див. нижче) може змінюватися в залежності від змісту, яке програма очікує від користувача.
mysql> Очікується перший рядок нового запиту.
-> Очікується наступний рядок поточного запиту.
'> Очікується завершення виділеної одинарними лапками рядка поточного запиту.
"> Очікується завершення виділеної подвійними лапками рядка поточного запиту.

Рядки підказки "'>" і ""> " показують, що користувач почав виділену одинарними або подвійними лапками частину рядка і не ввів в кінці завершальної лапки. Як правило, це відбувається через забудькуватість користувачів. Для виправлення подібної помилки і виходу з строкового режиму введіть завершальний символ і потім послідовність "\ с", щоб скасувати поточний запит.

В інтерактивному режимі роботи mysql всі запити зберігаються у файлі журналу. За замовчуванням таким є файл $ Номе /. Mysql_history, однак за допомогою змінної MYSQL_HISTORY його можна змінити. З створеного журналу запити можна повторно викликати і запускати, попередньо редагуючи або залишаючи їх незмінними. У розташованому нижче списку представлені деякі комбінації клавіш команд редагування, а також їх опис.

 

Комбінації клавіш

 

<?>, <Ctrl+P> Повторний виклик попереднього рядка

<?>, <Ctrl+N> Повторний виклик наступного рядка

<?>, <Ctrl+B> Переміщення курсору вліво (назад)

<?>, <Ctrr+F> Переміщення курсору вправо (вперед)

<Esc+Ctrl+B> Переміщення тому на одне слово

<Esc+Ctrl+F> Переміщення вперед на одне слово

<Ctrl+A> Переміщення курсору на початок рядка

<Ctrl+E> Переміщення курсору в кінець рядка

<Ctrl+D> Видалення символу, виділеного курсором

<Delete> Видалення символу зліва від курсору

<Esc+D> Видалення слова

<Esc+Backspace> Видалення слова зліва від курсору

<Ctrl+K> Видалення частини рядка від курсора до кінця рядка

<Ctrl+_> Скасування останньої зміни

 

Деякі параметри забороняють використання файлу журналу. Зокрема, до таких відносяться параметри, що визначають не інтерактивне використання mysql, наприклад -- batch, -- html і -- quick.

Використання

mysql [options] [db_name]

Визначення аргументу db_name робить зазначену базу даних поточною (базою даних за замовченням) на час даного сеансу роботи. Якщо ж цей аргумент не заданий, mysql запускається без поточної бази даних та в подальшому користувачеві доведеться або визначати посилання на всі таблиці з ім'ям бази даних, або встановити базу даних за замовчуванням за допомогою оператора USE db_name.

Стандартні параметри, підтримувані програмою mysql

--Character-sets-dir --host --silent --Compress --password --user-Default-character-set --port --verbose --Help --set-variable --version

 

Спеціальні параметри mysql

  • --Auto-rehash (boolean). У процесі запуску програма mysql впорядковує назви баз даних, таблиць і стовпців для створення інформаційної структури, що дозволяє швидко завершувати ці назви при введенні користувачем. (Створюючи запит, введіть початкову частину унікальної назви таблиці або стовпця й натисніть клавішу <Таb>. Програма mysql завершить введення цього імені.) Цей параметр скасовує складний процес упорядкування, завдяки чому mysql запускається значно швидше, особливо якщо обробляється велика кількість таблиць. Щоб активізувати можливість завершення імен вже після запуску mysql, можна запустити команду rehash з рядка підказки "mysql>".
  • --Batch, Визначає запуск mysql в пакетному режимі. Результати виконання запитів виводяться в спеціальному форматі (кожен запис в окремому рядку, а значення стовпців розділені символами табуляції). Цей формат виявляється надзвичайно зручним для створення звітів, які переносяться в інші програми, наприклад, електронні таблиці. Виведені результати виконання запитів за замовчуванням включають перший рядок із заголовками стовпців. Для виключення цього рядка використовується параметр --skip-column-names.
  • --column-names (boolean). Відображати імена стовпців разом з результатами запитів.
  • --database = db_name,-D dbname. База даних за замовчуванням.
  • --Execute = guery,-е query. Виконує запит і завершує роботу. Текст запиту необхідно взяти в лапки, щоб робоча оболонка не інтерпретувала його як кілька аргументів командного рядка. Кілька виконуваних запитів слід розділяти в рядку query за допомогою крапок з комами.
  • --Force,-f (boolean). Зазвичай при виконанні програмою mysql запитів з файлу робота завершується у разі виникнення помилки. Цей параметр змушує mysql продовжити роботу, незалежно від появи помилок.
  • Html,-Н (boolean). Виводить дані у вигляді коду HTML.
  • --no-beep,-b (boolean). Не подавати звуковий сигнал при виникненні помилок.
  • --Quick,-q. Зазвичай mysql перед відображенням результуючого набору запиту на екрані повністю витягує цей результат з сервера. Цей параметр змушує програму відображати кожен рядок відразу після отримання з сервeра, що сприяє зменшенню завантаження пам'яті і дозволяє успішно виконувати запити, які в інших умовах можуть працювати з помилкою.
  • --Raw,-r (boolean). Записує значення стовпців, не видаляючи спеціальні символи. Цей параметр використовується разом з параметром --batch.
  • --tee = file_name. Додати копію всього виведення у вказаний файл. Копіювання можна відключити за допомогою параметра --disable-tee. Цей параметр не працює в пакетному режимі.
  • --wait,-W. Якщо підключитися до сервера неможливо, запущена з цим параметром програма трохи чекає і знову намагається встановити з'єднання.
  • --xml,-X (boolean). Вивід у форматі XML.

 

Команди mysql

Крім відправляння на сервер MySQL операторів SQL, програма mysql розпізнає ще кілька своїх власних команд. Кожна така команда повинна задаватися окремим рядком, в кінці якої ставити крапку з комою необов'язково. Більшість команд має довгу форму, що складається з повного слова, і коротку форму, що складається із зворотної косої риски і наступної за нею літери. Регістр символів у командах довгої форми не враховується. Представлені в короткій формі команди необхідно задавати з урахуванням певного регістра.

 

  • clear, \ с. Скасовує поточний запит. Поточним називається запит, який вводиться в командному рядку. Отже, дана команда не в змозі скасувати запит, який вже відправлено на сервер і результати якого виводяться на екран.
  • connect [db_name [host_name]], \ r [db_name [host_name]]. Підключається до зазначеної бази даних на певному комп'ютері. Якщо ім'я бази даних або комп'ютера в командному рядку не вказані, замість них використовуються останні значення поточного сеансу mysql.
  • ego, \ G. Відправляє поточний запит на сервер і вертикально виводить його результати.
  • exit. Ця команда аналогічна команді quit.
  • go, \ g,;. Відправляє поточний запит на сервер і виводить результати його виконання.
  • help, \ h,?. Відображає довідкову інформацію про доступні команди mysql.
  • notee, \ t. Припиняє запис у файл tee.
  • print, \ р. Роздруковує поточний запит (його текст, а не результати виконання).
  • quit, \ q. Вихід з mysql.
  • rehash, \ #. Оновлює дані, необхідні для автоматичного завершення імен баз даних, таблиць і стовпців.
  • source file_name. Читає і виконує запити, що містяться у вказаному файлі. Якщо імена включають роздільники у вигляді зворотної косої риски ('\'), то в ОС Windows необхідно використовувати замість них косу риску ('/')
  • status, \ s. Витягує і виводить інформацію про стан сервера. Ця команда дуже корисна для визначення версії сервера і поточної бази даних, безпеки з'єднання і т.д.
  • use db_name, \ u db_name. Встановлює зазначену базу даних як поточної.

 

 

Програма mysqldump

Програма mysqldump записує вміст таблиць баз даних в текстові файли. Згодом такі файли можна використовувати в найрізноманітніших цілях, наприклад, для резервування баз даних, перенесення їх на інший сервер або створення тестової бази даних на основі вмісту вже існуючої бази.

За замовчуванням створений текстовий файл складається з оператора CREATE TABLE, який відтворює структуру таблиці, і набору операторів INSERT, які відновлюють її вміст.

 

Використання

mysqldump може працювати в одному з трьох режимів:

mysqldump [options] db_name [tbl_name]

mysqldump [options] - databases db_name ...

mysqldump [options] - all-databases

 

У першому випадку записуються задані таблиці зазначеної бази даних. Якщо після визначення бази даних db_name не наводиться жодного імені таблиці, у файл записується вміст всіх таблиць зазначеної бази даних. У другому випадку всі аргументи беруться як імена баз даних, і mysqldump зберігає всі таблиці баз даних в один файл. У третьому випадку mysqldump зберігає всі таблиці з усіх баз даних.

Найбільш часто програма mysqldump використовується наступним чином: mysqldump --opt db_name> backup_flle

Зауважимо, що цей архівний файл повинен імпортуватися в MySQL програмою mysql, а не mysqlimport: mysql db_name <backup_file

 

Стандартні параметри, підтримувані програмою mysqldump

--character-sets-dir --host --compress --password --user –verbose --default-character-set --port –version –help

 

Спеціальні параметри mysql dump

Описані нижче параметри управляють функціонуванням програми mysqldump. У наступному розділі "Параметри форматування даних" будуть представлені параметри, які разом з параметром --tab можуть використовуватися для представлення формату файлів даних.

 

  • --Add-drop-table (boolean). Додає оператор DROP TABLE IF EXISTS перед кожним оператором CREATE TABLE.
  • --Add-locks. Додає оператори LOCK TABLE і UNLOCK TABLE до і після набору операторів INSERT, що завантажують дані у кожну таблицю
  • --All,-a (boolean). Додає додаткову інформацію в оператори CREATE TABLE, які генеруються програмою. Це може бути тип таблиці, початкове значення для AUTO_INCREMENT і т.д. Це інформація, яку можна задати в частині table_options оператора CREATE TABLE.
  • --All-databases,-A (boolean). Зберігає всі таблиці у всіх базах даних.
  • --Allow-keywords (boolean). Дозволяє створювати імена стовпців, які є ключовими словами.
  • --Complete-insert,-с (boolean). Використовує оператор INSERT вказує імена всіх стовпців, які вставляються
  • --Databases,-В [boolean). Інтерпретує всі аргументи як імена баз даних і зберігає всі таблиці в кожній базі даних.
  • --Delayed-insert. Записує оператори INSERT DELAYED.
  • --Disable-keys,-К (boolean). Додає оператори ALTER TABLE. . . DISABLE KEYS і ALTER TABLE. . . ENABLE KEYS у вивід для відключення відновлення ключів під час обробки операторів INSERT. Це прискорює створення індексів для таблиць MylSAM.
  • --Extended-insert,-е (boolean). Записує оператори INSERT, які вставляють кілька рядків.
  • --flush-logs,-F. Оновлює реєстраційні файли сервера перед запуском процесу резервування.
  • --force,-f (boolean). Продовжує роботу навіть при виникненні помилок.
  • --lock-tables,-l. Встановлює блокування на всі таблиці перед їх резервуванням. Не можна використовувати з параметром - single-transaction.
  • --No-autocommit (boolean). Включає оператори INSERT для кожної таблиці в межі однієї транзакції. Отриманий результат може бути завантажений ефективніше, ніж при виконанні кожного оператора окремо в режимі auto-commit.
  • --No-create-db,-n (boolean). He записує оператори CREATE DATABASE. (Зазвичай вони додаються у висновок автоматично при використанні параметрів - databases або - all-databases.)
  • --No-create-info,-t. Не записує оператори CREATE TABLE. Цей параметр може стати в нагоді при резервному копіюванні тільки табличних даних.
  • --No-data,-d (boolean). Не записує дані таблиць. Це може стати в нагоді при резервному копіюванні тільки операторів CREATE TABLE.
  • --Opt. Оптимізує швидкість резервування таблиці і створює новий файл таким чином, щоб прискорити процес відновлення. Цей параметр включає параметри --add-drop-table, - add-locks, - all, - disable-keys, - extended-insert, - quickn - lock-tables.
  • --Quick,-q. За замовчуванням програма mysqldump зчитує весь вміст таблиці в пам'ять, а потім вже з пам'яті записує його у файл. Цей параметр змушує програму записувати кожен рядок на диск відразу після отримання з сервера. При використанні цього параметра ні в якому разі не можна призупиняти роботу програми mysqldump. Адже сервер буде очікувати поновлення її роботи, що позначиться на роботі інших клієнтів.
  • --Quote-names,-Q (boolean). Виділяє імена таблиць і стовпців символами зворотних лапок. Така можливість може знадобитися, коли в іменах присутні зарезервовані слова або спеціальні символи.
  • --single-transaction (boolean). Дозволяє здійснити цілісне резервне копіювання для таблиць типу InnoDB. Ідея полягає в тому, щоб всі таблиці резервувалися при одній транзакції. Це дає ефект блокування всіх записів одночасно. Не може використовуватись одночасно з параметром - lock-tables.
  • --tables. Перекриває дію параметра --databases.
  • - xml,-X. Генерує вивід у форматі XML.