Робота з mysql з командного рядка - zerochaos - авторський проект

Робота з mysql з командного рядка - zerochaos - авторський проект

Мені часто друзі задають ті чи інші питання з адміністрування і я подумав, чому б замість того, щоб пояснювати по 100 раз одне і те ж, не писати такі статті-замітки на сайті? До того ж, це прекрасна можливість в разі чого самому скористатися такою заміткою, адже Ви самі знаєте, утримати в голові часом все не можливо і так чи інакше іноді доводиться звертатися до настільної книги, так нехай такою книгою стане один з розділів цього сайту. Сьогодні ми поговоримо про те, як працювати з СУБД MySQL з командного рядка, так, хтось скаже - «накой? Адже є phpMyAdmin », відповідаю - навіщо витрачати дорогоцінні ресурси сервера, встановлюючи будь-яку гидоту за типом WebMin, phpMyAdmin і т.п. якщо все те ж саме легко можна виконати надійними, перевіреними засобами. Налаштування з терміналу по SSH-тунелю - наш вибір!

Що ж, приступимо. Єднаймося з сервером по SSH, наприклад через знаменитий PuTTY (A Free Telnet / SSH Client). Тепер перейдемо безпосередньо до опису команд.

mysql -u root -h localhost -p

Параметр -u вказує користувача, який буде входити в систему. Параметр -h вказує вузол мережі. Зазвичай це localhost, якщо ви налаштовувати не віддалений сервер. Нарешті, -p повідомляє програмі-клієнту mysql, що для доступу до бази даних буде вводитися пароль. Зверніть увагу на запрошення mysql>. Саме тут ви будете вводити всі свої команди. Тепер, перебуваючи в середовищі mysql в якості кореневого користувача, ми можемо почати налаштування бази даних.

Ми увійшли, і на екрані - запрошення mysql. Спочатку поглянемо на список вже наявних баз даних. Для цього введемо команду SHOW DATABASES.

Привілеї в MySQL

Надання привілеїв командою GRANT.
Привілеями визначаються можливості доступу користувачів до баз даних, таблиць ... майже до всього. Зараз тільки привілейований користувач root з MySQL може звертатися до бази даних test, згідно з даними дозволами. Давайте створимо ще одного користувача, наприклад, admin (адміністратор), який буде звертатися до бази даних test і працювати з інформацією з неї. Але перш, ніж почати, давайте поглянемо на кілька спрощений формат команди GRANT.

GRANT # 91; привілеї # 93; ON база_данних. * TO '[користувач]' @ '[вузол]' IDENTIFIED BY '[пароль]';

Примітка. Команда GRANT вважається способом створення користувача. Пізні версії MySQL, однак, також містять функцію CREATE_USER, хоча GRANT досі краще.
Тепер потрібні привілеї, які можна привласнювати. Використовуючи все вищесказане, можна встановлювати такі привілеї:

ALL - дається повний доступ до всієї бази даних
CREATE - користувачам дозволяється створювати таблиці
SELECT - користувачам дозволяється робити запити до таблиць
INSERT - користувачам дозволяється вставляти дані в таблицю
SHOW DATABASES - дозволяється виводити список баз даних
USAGE - у користувача немає привілеїв
GRANT OPTION - користувачам дозволяється давати привілеї

Примітка. Якщо ви використовуєте MySQL для обміну даними з веб-додатком, то роз'ясняються тут привілеї CREATE, SELECT, INSERT, а також привілеї DELETE і UPDATE (описані в керівництві по MySQL, розділ GRANT and REVOKE Syntax (англ.)) - єдині, які, ймовірно, будуть потрібні. Багато роблять помилку, роздаючи все привілеї, коли це, насправді, не потрібно. Порівняйте з розробниками додатків, чи дійсно такі дозволи створять проблеми в роботі.

Створення користувача admin:

Тепер ми знову в консолі. Користувачі налаштовані, давайте подивимося, що вони можуть робити. Спробуйте виконати кілька запитів до своїх БД і подивіться результат.

Видалення прав користувача командою REVOKE.

Команда REVOKE дозволяє заборонити доступ користувачеві. Можна або заборонити будь-який доступ, або тільки певний. Справді, формат дуже схожий на GRANT.
Синтаксис REVOKE:

REVOKE # 91; привілеї # 93; ON база_данних. * FROM '[користувач]' @ '[вузол]';