Вказати команди виходу з клієнта mysql. Як в Windows підключитися до MySQL в командному рядку. Основні переваги СУБД mysql

Доброго времени суток, колеги 🙂

Так, саме колеги, тому як простому смертному MySQL командний рядок (або MySQL Shell, як її ще люблять називати розробники), так само як і робота з MySQL в консолі, навряд чи стане в нагоді.

Для того, щоб дана тема була цікава, потрібно бути, як мінімум, або початківцям системним адміністратором, які не користуються phpMyAdmin і іншими інтерфейсами принципово.

Запуск консолі на різних ОС

Оскільки я буду демонструвати роботу з командним рядком MySQL в консолі сервера, то для початку непогано б було її запустити.

Дія просте, багатьом знайоме, для якого достатньо знання «гарячих клавіш».

Запуск консолі в Windows:

  • Win + R для відкриття командного рядки Windowsз правами адміністратора;
  • вводимо команду cmd
  • натискаємо Enterна клавіатурі

Запуск консолі в Linux дистрибутивах (терміналу): В Ubuntu, з якої я працював, досить системної комбінації клавіш Ctrl + Alt + T. Про інші ОС на базі Linux нічого сказати не можу.

Запуску консолі в MacOS: Сам я таким не займався, тому що Мак-му ще не обзавівся і навряд чи обзаведуся за непотрібністю, але, наскільки мені вдалося дізнатися, «гарячих клавіш» для виклику терміналу в цій ОС немає. Так що якщо ви є користувачем «яблучної» продукції, то запустіть консоль через інтерфейс ОС, благо, що мінлива в мережі багато.

Трохи соромно навіть таку інформацію публікувати на випадок, якщо на дану статтю випадково набредёт якийсь професійний системний адміністратор з бородатим досвідом, тому що він подумає: «Автор вважає своїх читачів програмістами, але при цьому вчить запускати консоль ... Псих якийсь :-)».

Так, цілком логічно 🙂 Але я просто враховую ситуації, що поряд з професійними розробниками сюди можуть потрапити і новачки. Тому я і намагаюся робити інформацію повною і доступною для всіх категорій користувачів, про що вже говорив.

Основні команди консолі MySQL

Отже, перш за все, нам потрібно отримати доступ до MySQL командному рядку в консолі. Для цього відкриваємо консоль сервера і, якщо у вас MySQL встановлений глобально у вигляді сервісу, то для «перевірки зв'язку» прописуємо наступне:

Mysql -V

консольна команда mysqlдозволяє нам запустити однойменну утиліту, що є командним рядком MySQL.

Це дозволить нам дізнатися версію MySQL, встановленого на комп'ютері і переконатися, що він взагалі встановлений як служба. Якщо це так, то у відповідь в консолі ви побачите приблизно наступний текст:.

Так, я не «торішній кодер», тому що сиджу під Віндою 🙂 Але, не суть. На Unix системах процедура буде такою ж.

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

В консолі переходимо в каталог, де знаходиться виконуваний файл MySQL (на Windows, по крайней мере, це mysql.exe) наступною командою:

Cd C: \ OpenServer \ modules \ database \ MySQL-5.7-x64 \ bin

Шлях до дистрибутива у вас, природно, може відрізнятися. Як приклад я вирішив запустити одну з версій MySQL, що входять в комплект OpenServer.

І запускаємо MySQL, перевіряючи попутно його версію:

Mysql.exe -V

В результаті в консоль мало вивестися аналогічне першому випадку повідомлення mysql Ver 14.14 Distrib 5.7.16, for Win64 (x86_64).

Все, з запуском MySQL командного рядка через консоль сервера розібралися, тепер будемо підключатися безпосередньо до сервера MySQL.

Підключення до сервера MySQL в консолі

Сервер MySQL може не обов'язково перебувати на тій же машині, на якій ви намагаєтеся отримати до нього доступ в консолі. Отже, для того, щоб підключення до віддаленого сервера MySQL через консоль було можливо, утиліта mysql має безліч параметрів, за допомогою яких можна вказувати необхідні настройки.

Для того, щоб запустити командний рядок MySQL в консолі, нам достатньо прописати в консолі сервера наступне:

Однак, в такому випадку ви отримаєте наступну помилку: ERROR 1045 (28000): Access denied for user 'ODBC' @ 'localhost' (using password: NO). Так повідомлення про помилку виглядає у мене на Windows. Якщо ж ви використовуєте Linux, то замість ODBC буде ім'я вашого системного користувача, під яким ви робите дії в системі.

Все це тому, що за замовчуванням при підключенні до MySQL сервера в консолі використовується користувач ODBC на Windows без пароля і системний користувач на Linux з його ж паролем. Хост за замовчуванням localhost, тобто даний користувач може підключатися тільки з локальної машини.

Тому виходу у вас два: або використовувати іншого користувача для входу в командний рядок MySQL, або створити користувача MySQL з потрібною учеткой. Але для другого способу нам без першого все одно не обійтися 🙂 Тому для початку підключаємося до сервера MySQL під стандартним користувачем root, Який створюється при установці MySQL на комп'ютер і для якого за замовчуванням дозволений доступ з localhost:

Mysql -u root -p

При вимозі ввести пароль просто натискаємо Enter (якщо ви його не вводили, звичайно, при установці MySQL). Після цього ви будете підключені до сервера MySQL з присвоєнням вам ідентифікатора підключення і отриманням доступу до командного рядка MySQL.

Якщо ж ви захочете підключитися до сервера MySQL, має специфічне ім'я хоста або IP або захочете залогінитися під іншим користувачем, то використовуйте команду наступного формату:

Mysql -u ім'я_користувача -p пароль_пользователя -h хост_ілі_IP_сервера_MySQL

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

Mysql --user = имя_пользователя --password = пароль_пользователя --host = хост_ілі_IP_сервера_MySQL

Якщо з якоїсь причини ви не хочете, щоб ваш пароль підключення до MySQL відображався в консолі (що правильно, на самом деле), можете використовувати наступну команду:

Mysql -u ім'я_користувача -h хост_ілі_IP_сервера_MySQL -p

Оскільки пароль не вказано явно, вам буде запропоновано його ввести на наступному кроці. Причому, введені вами символи відображені навіть не будуть у вигляді зірочок (wildcards), замість цього буде просто порожній рядок.

Крім зазначених налаштувань підключення можливо використовувати наступні параметри, значення яких будуть вказуватися аналогічним з вищепереліченими чином:

  1. -port або -P - для вказівки порту підключення до сервера MySQL;
  2. -protocol - протокол, по якому буде здійснюватися підключення (можливі варіанти: TCP для Windows і Linux, SOCKET для Linux, PIPE і MEMORY для Windows);
  3. -socket або -S - даний параметр стане в нагоді, якщо ви захочете підключатися через сокети, отже, значення параметра буде сокет;
  4. -pipe або -W - параметр потрібен, якщо ви захочете використовувати іменовані «трубопроводи» або «пайп» для підключення;
  5. -shared-memory-base-name - цей параметр вам стане в нагоді для MEMORY підключень через загальну пам'ять на Windows;

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

Якщо з якоїсь причини стандартний варіант із зазначенням хоста, користувача і пароля вам не підійде, то для з'ясування повного переліку параметрів підключення вам буде корисна наступна інформація - https://dev.mysql.com/doc/refman/5.7/en/ connecting.html

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

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

CREATE DATABASE імя_бази_данних;

Те ж саме діяння можна зробити і за допомогою спеціальної MySQL утиліти mysqladmin. Запускається вона ізольовано від командного рядка MySQL, тобто для її використання вам потрібно буде вийти з неї або відкрити нову консоль сервера.

А потім викликати наступну команду:

Mysqladmin create імя_бази_данних;

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

Як створити користувача MySQL в командному рядку

Не часто, але іноді потрібно створити нового користувача MySQL. Причому, в консольному режимі.

У командному рядку MySQL це робиться в такий спосіб:

CREATE USER "имя_пользователя" @ "хост_ілі_IP_машіни" IDENTIFIED BY "пароль_пользователя";

Аккаунт було створено. параметр хост_ілі_IP_машіниозначає, що при створенні користувача потрібно вказувати IP, з якого він зможе підключатися до сервера, або ім'я хоста (підійде доменне ім'я робочої машини в мережі).

До речі, при вказівці хоста для підключення до MySQL сервера можна використовувати символ відсотка - % , Який означає, що створюваний користувач може з'єднуватися з сервером MySQL з будь-якого IP адреси або хоста.

При цьому потрібно враховувати, що в даному випадку localhost не входить в список адрес, що вказуються за допомогою%, тому що localhost позначає підключення через UNIX сокет замість стандартного TCP / IP. Тобто якщо створений користувач MySQL буде підключатися до сервера не за допомогою сокетів, а по іншому протоколу, що вказується при з'єднанні з MySQL сервером в консолі, то йому потрібно буде створювати дві облікові записикористувача:

CREATE USER "имя_пользователя" @ "%" IDENTIFIED BY "password"; CREATE USER "имя_пользователя" @ "localhost" IDENTIFIED BY "password";

Зі створенням користувача MySQL в консолі ми розібралися. Тепер поставимо права користувача для виконання будь-яких дій з нашої щойно створеної базою даних за допомогою такої команди:

GRANT ALL PRIVILEGES ON імя_бази_данних. * TO "имя_пользователя" @ "хост_ілі_IP_машіни";

опція ALL, Як ви зрозуміли, як раз і вказує на те, що користувачеві вирішуються будь-які дії з певною БД. Повний список прав, які можна видавати користувачам за допомогою команди GRANT, Можна знайти тут (правда, опис параметрів англійською) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Можна, до речі, вибрати різні шаблони привілеїв, вказуючи їх при виклику команди через кому.

Якщо захочете створити суперюзера, тобто володіє глобальними привілеями для здійснення різних дій з усіма БД на сервері, то використовуйте наступний виклик команди:

GRANT ALL ON *. * TO "имя_пользователя" @ "хост_ілі_IP_машіни";

До речі, не зайвим буде очистити кеш MySQL сервера після установки привілеїв. Якщо будете їх міняти, то також не забувайте робити це викликом наступної команди:

FLUSH PRIVILEGES;

А якщо захочете поміняти права користувача, то використовуйте спочатку наступну команду щоб скинути всі права:

REVOKE ALL PRIVILEGES ON *. * FROM "имя_пользователя" @ "хост_ілі_IP_машіни";

А потім встановіть йому потрібні за допомогою GRANT, Як це було описано раніше.

Якщо ж вам в майбутньому буде потрібно змінити пароль користувача MySQL, то для цього досить виконати в MySQL Shell наступні команди:

SET PASSWORD FOR "имя_пользователя" @ "хост_ілі_IP_машіни" = PASSWORD ( "новий_пароль"); FLUSH PRIVILEGES;

Скидання кеша привілеїв MySQL сервера потрібен з тією ж метою, що і при зміні прав - без цього дії зміна пароля користувача MySQL може бути не зарахована, тому не лінуйтеся користуватися 🙂

В Інтернеті, до речі, повно прикладів використання наступної команди для скидання пароля MySQL користувача:

UPDATE mysql.user SET Password = PASSWORD ( "пароль") WHERE User = "ім'я користувача";

Але у мене на MySQL 5.7 даний варіант не спрацював, видавши помилку ERROR тисячу п'ятьдесят-чотири (42S22): Unknown column 'Password' in 'field list'. Її причина виявилася відсутність поля Password в таблиці mysql.user.

З чого можна припустити, що даний варіант працює лише для старих версій MySQL, де в таблиці користувачів дане поле існувало. Тому для впевненості використовуйте мій перший варіант, якщо ви, звичайно, не змушені працювати з допотопним ПО без можливості поновлення версій 🙂

На цьому створення нового користувача MySQL і огляд дій з його правами та паролями закінчений. Йдемо далі.

Вибір бази даних при роботі з MySQL через командний рядок

Тепер, після створення користувача в MySQL Shell і призначення йому прав на роботу з БД нам потрібно вибрати цю саму базу, щоб можна було оперувати самою базою і зберігаються в ній даними.

Для цього використовуємо наступну команду в MySQL консолі:

USE імя_бази_данних;

Якщо все пройшло успішно, то в консолі виведеться повідомлення Database changed, Що буде сигналізувати про те, що ми виконали вхід в базу MySQL через консоль. До речі, при з'єднанні з сервером MySQL, спочатку можна вказувати БД, з якою необхідно буде працювати. Для цього потрібно прописати наступну команду в консолі сервера:

Mysql --user = имя_пользователя --password = пароль_пользователя --host = хост_ілі_IP_сервера_MySQL --database = імя_бази_данних

Або те ж саме, тільки з запитом введення пароля користувача MySQL:

Mysql -u ім'я_користувача -h хост_ілі_IP_сервера_MySQL імя_бази_данних -p

На цьому все. Думаю, ніяких складнощів з підключенням до бази даних MySQL через консоль тепер у вас не виникне 🙂

Робота з таблицями MySQL через консоль MySQL

Отже, базу даних MySQL через консоль ми створили. Тепер було б непогано навчитися з нею працювати для випадку, коли командний рядок MySQL буде єдиним засобом доступу до зберігаються на сервері даними (як це було у мене, про що я говорив на початку статті).

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

CRUD операції, якщо хтось не в курсі, - це операції по створенню, читання, оновлення та видалення даних від англ. «Create, Read, Update, Delete» (можливо, на співбесідах вам таке знадобиться).

Нагадую, що для виконання дій з таблицями ви повинні спершу підключитися до БД MySQL за допомогою команди USE.

Отже, перша на порядку у нас команда створення таблиці MySQL в БД через командний рядок, яка виглядає так:

CREATE TABLE ім'я_таблиці (названіе_поля_1 тіп_поля_1, названіе_поля_2 тіп_поля_2 (размер_поля_2), INDEX (названіе_поля_1), ...);

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

До речі, якщо ви захочете скопіювати таблицю в іншу базу даних або просто створити копію в поточній, вам допоможуть наступні команди:

CREATE TABLE новое_імя_табліци LIKE старое_імя_табліци; INSERT новое_імя_табліци SELECT * FROM старое_імя_табліци;

Дані команди дозволяють скопіювати структуру таблиці і її дані разом з індексами і тригерами таблиць. Якщо вам потрібні просто дані і структура (імена полів і їх типів даних), то можете обійтися викликом однієї команди:

CREATE TABLE новое_імя_табліци AS SELECT * FROM старое_імя_табліци;

Наступна операція з блоку CRUD у нас читання. У разі таблиць читанням буде висновок на екран їх структури. Для цього існує наступні чотири команди:

SHOW FULL COLUMNS FROM ім'я_таблиці; DESCRIBE ім'я_таблиці; EXPLAIN ім'я_таблиці; SHOW CREATE TABLE ім'я_таблиці;

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

Друга і третя команди є просто скороченими формами першої команди без розширеної інформації. Навіщо було їх плодити - навіть не уявляю ... Хіба що, щоб було що запитати на співбесідах при прийомі на роботу? 🙂

Четверта команда, крім імені, типів полів і значень їх за замовчуванням дозволяє отримати значення ключів таблиць, движків таблиць (InnoDB, MyISAM), кодування та ін.

Update операція в разі таблиць являє собою зміну їх структури, тобто різні дії з полями таблиць MySQL:

ALTER TABLE ім'я_таблиці DROP COLUMN названіе_поля; ALTER TABLE ім'я_таблиці ADD COLUMN названіе_поля VARCHAR (20); ALTER TABLE ім'я_таблиці CHANGE старое_названіе_поля новое_названіе_поля VARCHAR (50); ALTER TABLE ім'я_таблиці MODIFY названіе_поля VARCHAR (3);

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

Теж саме можна робити і з індексами таблиць за допомогою багато в чому схожих команд:

ALTER TABLE ім'я_таблиці ADD UNIQUE INDEX імя_індекса (названіе_поля_1, ...); ALTER TABLE ім'я_таблиці rename INDEX старое_імя_індекса TO новое_імя_індекса; ALTER TABLE ім'я_таблиці DROP INDEX імя_індекса;

Наведені команди дозволяють додавати, перейменовувати і видаляти індекси з таблиць MySQL через командний рядок. Для додавання і видалення індексів є, до речі, ще альтернативний варіант використання самостійних команд, а не робити це через ALTER TABLE. Тому при бажанні можете використовувати їх:

CREATE UNIQUE INDEX імя_індекса (названіе_поля_1, ...) ON ім'я_таблиці; DROP INDEX імя_індекса ON ім'я_таблиці;

Наведені команди є еквівалентами першої і останньої з попереднього блоку. Для перейменування індексу, на жаль, окремої команди не існує. А для зміни типу індексу, на жаль, взагалі немає ніякої можливості в MySQL. Єдиний вихід - видалити індекс і створити його знову з потрібним типом.

Ну, і нарешті, ми дійшли до останньої операції з блоку CRUD - до видалення. Видалити таблиці MySQL з БД дуже просто. Досить в консолі MySQL виконати наступну команду:

DROP TABLE ім'я_таблиці;

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

Тому, якщо при видаленні або оновленні структури таблиці або її даних MySQL повернув вам помилку з текстом Can not delete or update a parent row: a foreign key constraint fails, То наступна інформація вам буде як не можна до речі.

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

Власне кажучи, з цією метою зовнішні ключі MySQL і потрібні.

Отже, для видалення даних, якому заважають зовнішні ключі необхідно виконати наступні дії в консолі MySQL:

SET FOREIGN_KEY_CHECKS = 0; # Необходімая_mysql_команда SET FOREIGN_KEY_CHECKS = 1;

До речі, якщо захочете видалити зовнішній ключ, то процедура буде такою ж, як і при видаленні індексу:

ALTER TABLE ім'я_таблиці DROP FOREIGN KEY імя_внешнего_ключа;

Щоб дізнатися ім'я зовнішнього ключа MySQL таблиці, використовуйте вже знайому команду MySQL консолі SHOW CREATE TABLE.

Робота з даними таблиць MySQL через командний рядок

Для таблиць CRUD операції в MySQL консолі ми розглянули. Для повної картини даної шпаргалці не вистачає тільки команд для роботи з самими даними, що зберігаються в таблицях БД. Думаю, багато хто знає ці команди і користувалися ними на практиці, але все ж нагадаю їх ще раз.

CRUD операції для роботи з даними таблиць MySQL будуть виглядати так:

INSERT INTO ім'я_таблиці (поле1, поле2, ...) VALUES (значеніе_поля_1, значеніе_поля_2, ...); SELECT поле1, поле2, ... FROM ім'я_таблиці; UPDATE ім'я_таблиці SET поле1 = значеніе_поля_1, поле2 = значеніе_поля_2; DELETE FROM ім'я_таблиці WHERE поле1 = значеніе_поля_1;

Наведені вище команди відповідають операціям створення, читання, оновлення та видалення даних з таблиць БД MySQL. При використанні SELECT і UPDATE також можливо використовувати уточнююче оператор WHERE, за допомогою якого можна конкретизувати вибір даних способом, описаним в разі використання DELETE.

Також при вибірці даних з БД за допомогою SELECT можна використовувати наступний варіант для отримання значень всіх полів таблиці:

SELECT * FROM ім'я_таблиці;

Природно, що в даних операціях можуть використовуватися і інші оператори, крім WHERE. Особливо їх багато при вибірці даних за допомогою SELECT: тут і UNION для об'єднання результатів декількох запитів, і різні типи JOIN. Всі перераховувати дуже довго і виснажливо як для мене, так і для вас буде читати це.

Тому давайте домовимося: якщо вам захочеться про щось дізнатися детальніше - просто напишіть про це в коментарях, і я постараюся вам відповісти. Або ж це зроблять інші знаючі учасники нашої спільноти. Ок? 😉

Так що поки на даному блоці зупинятися не будемо.

Якщо ж вам потрібно буде видалити всі дані з таблиці, то можете скористатися наступною MySQL командою:

TRUNCATE ім'я_таблиці;

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

Ще один цікавий момент, який тут потрібно врахувати, це те, що дана командане виробляє скидання лічильника AUTO_INCREMENT, який використовується, як відомо, для автоматичної генерації значення поля без необхідності його ручного регулювання.

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

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

Однак, в окремих випадках, коли в коді програми є якась прив'язка до значення поля, то дану поведінку може доставляти незручності.

Щоб цього уникнути, використовуйте замість команди вище даний варіант:

TRUNCATE TABLE someTable RESTART IDENTITY;

Даний варіант виклику команди TRUNCATEдозволить вам скинути значення лічильника полів з AUTO_INCREMENT. Тому значення поля першій доданій записи після цього видалення буде 1 замість 1201, як в прикладі вище.

Як видалити базу даних MySQL через командний рядок

Життєвий цикл роботи з базою даних добігає кінця і завершується цілком логічно - її видаленням. Для того, щоб зробити цю операцію в консолі MySQL, потрібно виконати наступну команду (при цьому видаляється БД може бути і не обрана командою USE):

DELETE DATABASE імя_бази_данних;

Те ж саме діяння можна зробити і за допомогою MySQL утиліти mysqladmin, про яку я вже згадував на початку статті при створенні БД:

Mysqladmin drop імя_бази_данних;

При виклику команди в консолі сервера з'явиться наступне повідомлення:

Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'імя_бази_данних' database

Коротко - це попередження про те, що видалення бази даних MySQL - ідея дуже погана. Також вас запитають дії. Якщо згодні - пишемо yі натискаємо Enterна клавіатурі, після чого на екран виведеться наступне повідомлення (якщо все пройшло успішно, звичайно ж):

Database «імя_бази_данних» dropped

Ось так 🙂

Як видалити користувача MySQL в консолі

Тепер така ж доля спіткає і створюваного нами користувача MySQL, щоб продемонструвати вам, як це робиться. Але для початку непогано б перед самим видаленням перевірити, чи існує необхідний користувач насправді.

Починаючи з MySQL 5.7 для обох цих дій існує одна команда:

DROP USER IF EXISTS имя_пользователя;

У більш ранніх версіях MySQL потрібно дві окремі команди:

GRANT USAGE ON *. * TO "имя_пользователя" @ "хост_ілі_IP_адрес"; DROP USER "имя_пользователя" @ "хост_ілі_IP_адрес";

На жаль, в даному випадку повідомлення про виконання операції в консолі MySQL традиційно малоинформативно 🙁 Тому, щоб дізнатися, що видалення користувача користувач MySQL все-таки відбулося, можна скористатися наступною командою, яка виводить на екран список всіх існуючих на поточному MySQL сервері користувачів:

SELECT User FROM mysql.user;

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

SELECT User, Host, Grant_priv FROM mysql.user;

Також в таблиці mysql.user існує маса інших полів, в яких зберігаються інші типи привілеїв та інша інформація, з повним списком якої можна познайомитися тут - https://mariadb.com/kb/en/library/mysqluser-table/

Чи не дивуйтеся, що це документація до СУБД MariaDB. Технічно це те ж саме, що і MySQL, тому що MariaDB є всього лише її відгалуженням або Форком від англ «fork» - відгалуження, вилка.

Навіщо її було робити - знову без поняття 🙂 Хіба що, щоб всім гордо заявляти, що «у мене своя СУБД»? .. Але про точні мотиви і відмінностях MySQL і MariaDB я, чесно кажучи, не сильно в курсі. Тому якщо ви щось про це знаєте - було б цікаво прочитати про це в коментарях.

Вихід з консолі MySQL

Ось і все, життєвий цикл БД і користувача, що почався їх створенням і завершився видаленням підійшов до кінця. Отже, командний рядок MySQL, з якою ми працювали в консолі сервера за допомогою утиліти mysql, Нам більше не потрібна.

Залишилося тільки вийти з неї ...

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

Правильною поведінкою в даній ситуації буде всього лише виклик команди exitв командному рядку MySQL, після чого сервіс з нами ввічливо попрощається 🙂

І все-то 🙂 Так що наступного разу не потрібно плодити консолі і перевідкривати їх кожен раз, коли потрібно буде вийти з MySQL в консолі і знову отримати до неї доступ для управління сервером.

Ось і все, що я хотів вам сьогодні розповісти. Сподіваюся, що моя шпаргалка по роботі з командним рядком MySQL через консоль стане в нагоді не тільки мені, але і вам.

Говорячи про практичне застосування викладеної в статті інформації хочеться нагадати, що наведеними конструкціями можна користуватися не тільки в командному рядку MySQL і консолі сервера, але і в консолі phpMyAdmin та іншого ПО, яке надає таку можливість.

Користуватися вам нею чи ні - ваша справа. Але, як я сказав на самому початку статті, бувають ситуації, коли використання консолі MySQL може заощадити ваш час і нерви. А чи користуватися командним рядком кожен день чи ні - справа виключно смаку і індивідуальних переваг.

Пишіть коментарі про те, які команди ви використовуєте найчастіше. А, можливо, ви знаєте ще якісь хитрощі. У будь-якому випадку діліться своєю думкою з іншими і підтримуйте розмови в коментарях інших користувачів.

Обіцяю, що в процесі ви дізнаєтеся багато нового, як і я при написанні кожної своєї статті 🙂

На цьому все! Успіху і до нових зустрічей 🙂

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

Більше 5 років досвідупрофесійної розробки сайтів. Робота з PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angularі іншими технологіями web-розробки.

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

Короткий огляд систем управління базами даних

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

Існує певна класифікація, яка визначає необхідність використання тієї чи іншої бази даних і СУБД (системи управління базами даних). Найбільш поширеними в даний час прийнято вважати клієнт-сервернітехнології зберігання даних. До них належать такі види: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, Лінтера, MySQL. Нас буде цікавити останній варіант - MySQL, команди якої повністю відповідають стандартам SQL. Дана технологія є однією з популярних і часто застосовуваних для вирішення як локальних прикладних, так і виробничих завдань малого масштабу.

Попередниками клієнт-серверної технології є файл-серверніСУБД, які втратили свої позиції через низку наявних недоліків, серед яких наголошують на необхідності поширення ядра СУБД на кожному комп'ютері і значне навантаження на локальну мережу, Що приводить до збільшення витрат часу. До даної групи належать Borland Paradox.

Нові технології, що набирають популярність

Однак кілька років тому з'явилася передова технологія, яка набуває популярності і користується попитом при рішенні невеликих локальних задач. Мова йде про вбудованихсистемах управління базами даних. Головна особливість розглянутих СУБД - відсутність серверної частини. Сама система являє собою бібліотеку, що дозволяє уніфікованим чином працювати з великими обсягами інформації, розміщеними на локальному комп'ютері. Даний спосіб виключає недоліки файл-сервернихкоштів, а також значно перевершує за швидкістю клієнт-сервернітехнології.

Як приклади можна розглядати OpenEdge, SQLite, BerkeleyDB, один з варіантів Firebird, Sav Zigzag, Compact, Лінтера, а також один з варіантів MySQL, команди якого нічим не відрізняються від використовуваних в клієнт-серверних СУБД. Однак вбудовуютьсясистеми можуть легко втратити свою актуальність, якщо завдання не носити локальний характер.

Основні переваги СУБД MySQL

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

Головним плюсом на російському ринку вважається її доступність, так як вона є безкоштовною в більшості випадків. Другою особливістю є швидкодія. Однією з найпопулярніших систем є MySQL. Команди в ній виконуються швидко, з мінімальним часом відгуку. Не впливає на швидкість обробки команд підключення до сервера декількох клієнтів в багатопотоковому режимі за рахунок використання механізму InnoDB для швидкої допомоги транзакцій.

Наявність ODBC драйвера дозволяє спростити розробникам рішення багатьох завдань. До переваг також варто віднести наявність можливості здійснення записів фіксованої і змінної довжини. Але головна функція, яка дуже цінується в колі програмістів, - інтерфейс з мовами С і РНР. Можливості, що надаються MySQL, дозволили використовувати дану СУБД для величезного числа провайдерів послуг інтернет-хостингу.

А для простого обивателя, який виявляє інтерес до сучасних технологій зберігання інформації, необхідно вивчати MySQL, і їх синтаксис тому, що фахівці в даному напрямку є широко затребуваними і високооплачуваними в будь-якій точці світу. Тому, якщо когось цікавить даний напрямок, не варто зволікати. Необхідно переходити до вивчення прямо зараз.

Що необхідно для вивчення

На перший погляд може здатися, що дана область складна в самостійному вивченніі вимагає постійного зв'язку з фахівцем. Однак це далеко не так. Вивчати архітектуру і особливості MySQL, основні команди мови запитів і все, що з цим пов'язано, можна самостійно, не вдаючись при цьому до допомоги консультанта. Для цього достатньо мати бажання і докладати зусиль для того, щоб рухатися далі. Тільки саморозвиток і вивчення цієї області дозволять набути нових знань, закріпити набуті навички та, можливо, почати будувати кар'єру і просуватися в цьому напрямку.

Для вивчення основних команд, перш за все, необхідно мати під рукою безкоштовнуверсію консольної утиліти MySQL. Саме з неї починається процес навчання. Завантажити її можна з офіційного сайту MySQL. Вона легко встановлюється на будь-яку операційну систему, утворюючи серверну та клієнтську на одному комп'ютері, що дуже зручно.

Потім необхідно вдатися до пошуку навчального мануала, що містить основні відомості про середовище MySQL. для базового вивчення, як правило, в них також містяться. Інформації з цього приводу досить багато. Однак до вибору необхідно підійти серйозно. Інформація повинна бути представлена ​​послідовно і чітко структурована.

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

Основні консольні команди

Плавно переходячи від основних особливостей, можливостей і переваг, ми підібралися до списку основних команд. Утиліта MySQL спочатку містить тільки одного користувача, який якраз і використовується для вивчення. Це користувач з ім'ям root, Пароль для якого повністю ідентичний імені.

При першому і наступних запусках консолі MySQL користувачеві необхідно буде вводити пароль rootдля подальшої роботи з СУБД MySQL. Команди консолі будуть доступні тільки після проходження аутентифікації.

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

і відображення

Тепер необхідно перейти до наступного кроку. Для цього необхідно вибрати існуючу або створити нову базу даних. Для вибору існуючої бази необхідно використовувати команду use. І через пробіл ввести ім'я бази даних. Спочатку в утиліті вона існує тільки одна - з ім'ям test. Тому запит буде виглядати наступним чином: use test.

Для створення бази даних необхідно скористатися командою create, Вказавши їй ключове слово databaseі задавши відповідне ім'я. Структура прийме наступний вигляд: create database Name_of_database. Для роботи з створеної базою до неї необхідно звернутися за допомогою команди use.

У середовищі передбачена функція, призначена для відображення існуючих баз даних, таблиць, первинних ключів або зовнішніх зв'язків та виведення наявної про них інформації на MySQL консоль. Команди в цьому випадку повинні завжди починатися з пропозиції show. Наприклад, для того щоб відобразити список наявних баз даних для поточного користувача, досить ввести наступний запит: show databases. Для відображення таблиці досить після ключового слова змінити об'єкт відображення, вписавши tables.

Команди управління таблицями

Перш ніж перейти далі, необхідно ще раз нагадати, що відповідність стандартам мови SQL надає широкі можливості розробникам, незалежно від використовуваних СУБД і операційних систем. Запити, розроблені в будь-якому середовищі, яка підтримує стандарт SQL, успішно відпрацюють (при наявності бази даних і таблиць) в середовищі MySQL. Команди консолі Windows нічим не відрізняються від використовуваних в інших операційних системах.

Для роботи з таблицями існує ряд певних команд, які, якщо перевести їх з англійської, говорять самі за себе. Про команду createбуло згадано вище. Вона також може бути задіяна для додавання таблиць в раніше створену базу даних. Для видалення об'єктів баз даних, зокрема і таблиць, використовується команда drop, До якої додається ім'я знищуваного об'єкта. приклад: drop name_ of_ your_ table.

Синтаксис звернень до сервера БД завжди має загальну структуру. Тому запит, розроблений в Windows, успішно відпрацює і в консолі MySQL Linux. Команди, оброблені сервером без помилок в одній операційній системі, Не можуть привести до виникнення помилок в інших.

команда Select

Але найважливіша для роботи з таблицями команда, синтаксис якої досить простий, - команда select. Саме вона застосовується для вибору даних з бази. Початковий синтаксис має наступну структуру: select * from table_ name. Відправивши такий запит серверу бази даних, клієнт повинен отримати всі записи, що зберігаються в таблиці.

Багато ніколи не замислюються, але при перегляді інтернет-ресурсів постійно використовуються MySQL команди.PHP-запити використовують синтаксис мови SQL, щоб відображати вміст каталогів інтернет-магазинів або новини в соціальних мережах. Замість знака "*" після пропозиції select, Як правило, приводиться список основних полів таблиці або декількох таблиць, дані з яких необхідно обробити. У разі вибірки з декількох таблиць використовується спеціальна зв'язка join, Яка служить для їх з'єднання за наявними зовнішніх зв'язків. Однак ця умова можна змінювати, самостійно вказуючи, по яких полях повинна проводитися зв'язок.

Завдання обмежень вибірки

Іноді відбувається ситуація, коли відповідь, отриманий від сервера бази даних, містить дані, що повторюються. Для того щоб користувачеві було видно тільки унікальні записи, Використовується пропозицію distinct. Воно міститься перед списком запитуваних полів і служить допоміжним засобом для приховування дублікатів.

Утиліта командного рядка mysql є простою SQL-оболонкою (з можливостями бібліотеки readline проекту GNU). Вона підтримує інтерактивний і неінтерактивний режими. В інтерактивному режимі результати запиту представляються в ASCII-форматі. При використанні в неінтерактивному режимі (наприклад, в якості фільтра) результат видається в текстовому форматі з символом табуляції як роздільник (вихідний формат можна змінити за допомогою параметрів командного рядка). Сценарії можна запускати, як показано нижче:

Shell> mysql database output.tab

Якщо виникають проблеми через нестачу пам'яті на даному клієнті, застосовуйте параметр --quick! Це змусить mysql використовувати функцію mysql_use_result () замість функції mysql_store_result () для отримання результуючої вибірки даних.

Використовувати mysql дуже легко. Запустіть mysql database або mysql --user = user_name --password = your_password databas e. Наберіть SQL-команду прямо в командному рядку, завершивши її одним із символів: `;", `\ g" або `\ G", і натисніть клавішу `` Введення "".

Утиліта командного рядка mysql підтримує наступні параметри:

Help Висновок довідкової інформації про використання програми і вихід з неї. -A, --no-auto-rehash Вимикає автоматичне рехешірованіе. rehash слід використовувати для отримання хешу таблиць і полів. Це забезпечує більш швидкий старт mysql. --prompt = ... Встановлює запрошення на введення команд в заданому форматі. -b, --no-beep Вимикає звуковий сигнал про помилку. -B, --batch Виводить результати в пакетному режимі з символом табуляції як роздільник, кожен рядок з нового рядка. Файл історії не використовується. --character-sets-dir = ... Директорія, де знаходяться набори символів. -C, --compress Використовувати стиснення даних в протоколі сервер / клієнт. - #, --debug [= ...] Журнал налагодження. Значення за замовчуванням - "d: t: o, / tmp / mysql.trace". -D, --database = ... Ім'я використовуваної бази даних. Здебільшого застосовується в конфігураційному файлі `my.cnf". --Default-character-set = ... Встановити набір символів за замовчуванням. -E, --execute = ... Виконати команду і завершити програму (висновок результату як і для --batch). -E, --vertical Вивести результати запиту (рядки) по вертикалі. Можна зробити висновок подібним чином і без даного параметра, завершуючи команди символами \ G. -f, --force Продовжувати обробку навіть при виявленні помилки SQL. -g, --no-named-commands Вимикає іменовані команди. Слід використовувати тільки команди виду \ * або застосовувати іменовані команди тільки на початку рядка, що закінчується символом `;" . Починаючи з версії 10.9 клієнт запускається з цією опцією, включеної за замовчуванням! З опцією -g, однак, довгі команди все ще працюють з першого рядка. -G, --enable-named-commands Дозволяє іменовані команди. Допускаються довгі команди, а також укорочені команди виду \ *. -i, --ignore-space Ігнорувати пробіл після імен функцій. -h, --host = ... Під'єднатися до бази даних на зазначеному хост. -H, --html Вивести вихідні дані у вигляді HTML. -L, --skip-line-numbers Чи не вказувати номери рядків для помилок. Корисно для порівняння результуючих файлів, що включають повідомлення про помилки. --no-pager Блокує пейджер (програма посторінкового виведення) і виводить результат в стандартний висновок stdout (в Unix). Дивіться також команду \ h (інтерактивна допомога). --no-tee Блокує вихідний файл. Дивіться також команду \ h (інтерактивна допомога). -n, --unbuffered Очищати буфер після кожного запиту. -N, --skip-column-names Чи не вказувати імена стовпців в результатах. -O, --set-variable var = option Встановити значення змінної. Список використовуваних змінних виводиться через --help. -o, --one-database Оновити тільки базу даних, встановлену за замовчуванням. Дозволяє пропускати поновлення іншої бази даних в журналі поновлення. --pager [= ...] Встановлює тип даних виведення. За замовчуванням це змінна оточення PAGER. Її можливі значення - less, more, cat [> ім'я файлу], і т.д. Див. Також команду \ h (інтерактивна допомога). Цей параметр не працює в пакетному (batch) режимі. Пейджер працює тільки під Unix. -p, --password [= ...] Пароль, що використовується при приєднанні до сервера баз даних. Якщо в командному рядку пароль не вказано, то він запитується у користувача. При використанні короткої форми -p не залишайте пробіл між параметром і значенням пароля. -P --port = ... Номер порту TCP / IP, який використовується для під'єднання. -q, --quick Чи не кешувати результат. Виводити його рядок за рядком так, як він приходить від сервера. Це може сповільнити швидкість роботи сервера, якщо висновок результату буде припинений. Файл історії не використовується. -r, --raw Показувати значення стовпців без будь-якого перетворення. Використовується з --batch. -s, --silent Режим мовчання. Показати тільки повідомлення про помилки. -S --socket = ... Файл сокета, який використовується для під'єднання. -t --table Виводити результат в табличному форматі. Встановлено за замовчуванням для непакетного режиму. -T, --debug-info Виводити деякі налагоджувальні дані при виході з програми. --tee = ... Приєднати що-небудь до вихідного файлу. Дивіться також команду \ h (інтерактивна допомога). Цей параметр не працює в пакетному режимі. -u, --user = # Ім'я користувача MySQL, якщо цей користувач не є активним в даний час. -U, --safe-updates [= #], --i-am-a-dummy [= #] Дозволяє виконувати тільки операції UPDATE і DELETE, використовуючи ключі. більш повна інформаціяпро цей параметр приведена нижче. Можна скинути цей параметр, встановивши в конфігураційному файлі `my.cnf" значення аргументу --safe-updates = 0. -V, --verbose Більш розширений режим виведення результатів (-v -v -v дає формат виведення таблиці). -V , --version Висновок інформації про версії і вихід з програми. -w, --wait Якщо з'єднання з сервером впало, почекати і спробувати відновити його, замість того, щоб перервати роботу.

Через параметри командного рядка -O або --set-variable можна також встановити наступні змінні:

Якщо ввести в командному рядку help, програма mysql виведе список підтримуваних нею команд:

Mysql> help Команди MySQL help (\ h) Виводить даний текст. ? (\ H) Синонім для help. clear (\ c) Команда очищення. connect (\ r) Знову підключитися до сервера. Додаткові аргументи - db і host. edit (\ e) Редагувати поточну команду за допомогою $ EDITOR. ego (\ G) Відіслати поточну команду MySQL сервера і вивести результат по вертикалі. exit (\ q) Вийти з програми. Те ж що і quit. go (\ g) Відіслати поточну команду MySQL сервера. nopager (\ n) Блокувати пейджер, виводити через stdout. notee (\ t) Не додавати записи в вихідний файл outfile. pager (\ P) Встановити PAGER. Виводити результати запиту через PAGER. print (\ p) Вивести поточну команду. prompt (\ R) Змінити формат запрошення на введення команд mysql. quit (\ q) Вийти з програми. rehash (\ #) Відновити таблицю хеш. source (\.) Запустити на виконання файл з SQL-сценарієм. Вказати ім'я файлу в якості аргументу. status (\ s) Отримати інформацію про статус сервера. tee (\ T) Встановити параметр outfile. Приєднати що-небудь до цього вихідного файлу. use (\ u) Використовувати іншу базу даних. Вказати ім'я бази даних в якості аргументу.

Команда pager працює тільки під Unix.

Результат цього наступний:

  • Чи не дозволено виконувати команди UPDATE або DELETE, якщо не вказані обмеження по ключам в секції WHERE. Однак можна змусити виконуватися команди UPDATE / DELETE, використовуючи оператор LIMIT: UPDATE table_name SET not_key_column = # WHERE not_key_column = # LIMIT 1;
  • Все дуже великі результати обмежені рядками # select_limit #.
  • SELECT и, які можуть зажадати для виконання кількість комбінацій рядків більше, ніж # max_join_size #, будуть перервані.

Кілька корисних порад з використання клієнта mysql:

Деякі дані більш зручні для читання при виведенні їх по вертикалі замість зазвичай використовуваного горизонтального вікна виведення. Наприклад, текст, який більше за довжиною, ніж по ширині, і містить в собі багато нових рядків, часто набагато легше читати у вертикальному поданні.

Mysql> SELECT * FROM mails WHERE LENGTH (txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith writes: Thimble> Hi. I think this is a good idea. Is anyone familiar with UTF-8 Thimble> or Unicode? Otherwise, I "ll put this on my TODO list and see what Thimble> happens. Yes, please do that. Regards, Monty file: inbox-jani-1 hash: 190402944 1 row in set (0.09 sec)

  • Для входу в систему можна використовувати опції команди tee. Вона може бути запущена за допомогою параметра --tee = ... для mysql або інтерактивно з командного рядка введенням команди tee. Усі надані на екрані дані будуть також додані до заданого файлу. Це може бути дуже корисно для цілей налагодження програми. Утиліту tee можна блокувати з командного рядка командою notee. Повторний запуск команди tee знову включить журнал. Якщо при цьому параметр для команди tee не вказано, то буде використовуватися попередній файл. Слід врахувати, що команда tee буде записувати результати в файл після кожної виконаної команди, якраз перед появою командного рядка для введення чергової команди.
  • За допомогою опції --pager [= ...] став можливим перегляд або пошук результатів в інтерактивному режимі за допомогою Unix-програм less, more чи інших подібних. Якщо явно не вказати аргумент в цьому параметрі, клієнт mysql буде шукати змінну оточення PAGER і встановить значення pager. Програму pager також можна запустити з інтерактивною командного рядка командою pager і зупинити командою nopager. Команда може приймати аргумент, який є необов'язковим; pager буде встановлена ​​в значення цього аргументу .. Команда pager може бути викликана і без аргументу, але це вимагає використання опції --pager або відповідної установки за замовчуванням стандартного виводу stdout. Команда pager працює тільки в Unix, оскільки використовує функцію popen (), відсутню в Windows. Замість цього в Windows можна використовувати параметр tee, хоча в ряді ситуацій це менш зручно, ніж застосування команди pager.
  • Кілька порад щодо команди pager: Її можна використовувати для запису в файл: mysql> pager cat> /tmp/log.txt і результати будуть спрямовані тільки в файл. Викликані командою pager програми можуть приймати будь-які допустимі опції: mysql> pager less -n -i -S Зверніть особливу увагу на опцію -S в наведеному вище прикладі. Вона може бути дуже корисна при перегляді результатів. Спробуйте застосувати її з горизонтальним виводом (завершуйте команди символами "\ g", or ";") і з вертикальним (в кінці команд - "\ G"). Дуже громіздкі результати виведення іноді важко буває прочитати з екрану, в цьому випадку команда less з опцією -S дозволить ознайомитись з результатами в інтерактивному режимі зліва направо, при цьому при появі рядків з довжиною більше, ніж ширина екрану, їх висновок буде продовжений висновок з нового рядка . Висновок даних в таких випадках виходить більш легким для читання. При інтерактивному виклику команди less з опцією "-S" можна перемикати режим її роботи (включено / вимкнено) з командного рядка. Щоб отримати додаткову інформацію щодо less, звертайтеся до опису команди "h".
  • На закінчення відзначимо (якщо ви цього ще не зрозуміли з попередніх прикладів), що існує можливість комбінувати дуже складні способи обробки результатів. Так, в наступному прикладі результати будуть послані в два різних каталогу, змонтованих на двох різних жорстких дисках в / dr1 and / dr2, і, незважаючи на це, результати можна побачити на екрані за допомогою команди less: mysql> pager cat | tee /dr1/tmp/res.txt | \ Tee /dr2/tmp/res2.txt | less -n -i -S
  • Наведені вище функції можна теж комбінувати: запустивши tee і встановивши pager в less, можна переглядати результати за допомогою Unix-команди less і при цьому одночасно проводити запис в файл. Різниця між службової Unix-утилітою tee, використовуваної в програмі pager, і вбудованою в клієнт mysql командою tee полягає в тому, що вбудована команда tee працює навіть в тому випадку, якщо в Unix утиліта tee недоступна. Вбудована команда tee також веде запис всього, що виводиться на екран, тоді як утиліта Unix tee, використовувана з pager, не робить цього в достатньому обсязі. Останнє, але тим не менш важлива обставина полягає в тому, що інтерактивна команда tee більш зручна для перемикання режимів роботи включено / вимкнено, якщо під час запису в файл іноді виникає необхідність відключити цю функцію.

Можна змінити формат запрошення в командному рядку клієнта mysql.

Можливі такі опції запрошення:

опція опис
\ vверсія mysqld
\ dім'я використовуваної бази даних
\ hім'я хоста, до якого проводиться підключення
\ pномер порту, через який проводиться під'єднання
\ uІм'я користувача
\ Uповна адреса [Email protected]
\\ зворотний слеш `\"
\ nсимвол нового рядка
\ tтабуляція
\ пробіл
\_ пробіл з підкресленням
\ Rчас по військовому часовому поясу (0-23)
\ rчас за стандартним часовому поясу (1-12)
\ mхвилини
\ yдва розряду року
\ Yчотири розряду року
\ Dповний формат дати
\ sсекунди
\ wдень тижня в трибуквених форматі (Mon, Tue, ...)
\ PЧас до полудня / після полудня (am / pm)
\ oмісяць в числовому форматі
\ Oмісяць в трибуквених форматі (Jan, Feb, ...)
\ cЛічильник, що підраховує кількість введених команд

Символ `\" за яким слід будь-яка інша буква, просто доповнює цю букву.

Встановити параметри запрошення за допомогою таких дій:

У змінних оточенняМожна встановити змінну оточення MYSQL_PS1 для рядка запрошення. Наприклад: shell> export MYSQL_PS1 = "(\ [Email protected]\ H) [\ d]> " `My.cnf" `.My.cnf"Можна встановити опцію prompt в будь-якому файлі конфігурації MySQL в групі mysql. Наприклад: prompt = (\ [Email protected]\ H) [\ d]> \ _ У командному рядкуМожна встановити опцію --prompt з командного рядка утиліти mysql. Наприклад: shell> mysql --prompt = "(\ [Email protected]\ H) [\ d]> "( [Email protected]) > В інтерактивному режиміМожна також використовувати команду prompt (або \ R) для зміни налаштувань запрошення в інтерактивному режимі. Наприклад: mysql> prompt (\ [Email protected]\ H) [\ d]> \ _ PROMPT set to "(\ [Email protected]\ H) [\ d]> \ _ "( [Email protected]) > ([Email protected])> Prompt Повернення до вихідних (за замовчуванням) налаштувань PROMPT в утиліті mysql> mysql>

Від автора:знову заплутали, і не знаєте, як зайти в MySQL? Чи не ви перший! Збирайте всіх туристів, які заблукали, і зараз вирушимо прямо в гості до неї. До кого «до неї»? До найпопулярнішою СУБД всесвітньої павутини!

Де в Денвері знаходиться MySQL

Мається на увазі не столиця штату Колорадо в США, а пакет програм для створення і тестування додатків на PHP. До складу набору для «джентльменів» входить локальний сервер Apache, MySQL сервер і оболонка phpMyAdmin. Саме за допомогою даного програмного пакетунайчастіше «новачки» пізнають усі тонкощі роботи з цією системою управління БД.

Перед тим, як зайти в MySQL через браузер, потрібно запустити локальний сервер, потім в адресному рядкунабрати localhost, і у вікні «Ура, запрацювало!» в розділі утиліти виберіть phpMyAdmin.

Після чого опинитеся там-же (в phpMyAdmin).

Проходимо до баз даних через «лабіринт»

Ми з вами вирушимо в «дрімучий» ліс, і постараємося через нього «пробратися» до сервера баз. Не подумайте, що ми від когось ховаємося, просто зараз ми будемо діяти, як. Поїхали!

Перед тим, як зайти в MySQL через командний рядок, слід з'ясувати, де знаходиться головна директорія сервера баз даних. Якщо ви використовуєте СУБД в «чистому» вигляді без «домішок» (поза «джентльменського» набору), то коренева папка сервера розташована тут: C: \ Program Files \ MySQL \ MySQL Server 5.5 \ bin \ mysql.exe

Якщо ви використовуєте Денвер, то шуканий фал знаходиться цим шляхом: Z: \ usr \ local \ mysql-5.5 \ bin \ mysql.exe,

де Z - це віртуальний диск, Який створюється після запуску локального веб-сервера. У вас він може бути під іншим ім'ям (точніше, буквою).

Нас цікавить саме файл mysql.exe. Запустимо його на виконання, вказавши ім'я сервера баз даних, пароль і користувача, під яким зайдемо в MySQL.

Як включити MySQL через командний рядок: заходимо в «Пуск», серед стандартних програмвибираємо «Командний рядок». Запускаємо утиліту, і з цього моменту опишемо всю процедуру «ходіння» в дрімучому лісі покроково, щоб вся група «заблукали» не загубилася ще раз Стартуємо:

У чорне вікно CMD (командного рядка) вводимо шлях, де зберігається виконуваний файл MySQL, а поруч вказуємо ім'я користувача СУБД і пароль. Так як у нас локальний сервер, то ми вводимо після ідентифікатора u ім'я користувача root без пароля.

Насправді це неправильно, і для кожного користувача сервера MySQL повинен бути встановлений пароль. Більш детально всі питання безпеки СУБД ми розглянемо в одній з наших наступній публікації.

Ось весь шматок «коду»: Z: \ usr \ local \ mysql-5.5 \ bin \ mysql.exe -u root

Якщо все пройшло успішно, то нижче у вікні командного рядка повинна з'явитися інформація про версії запущеного сервісу, рік випуску і інша «непотрібна» для нас інформація.

Тепер, щоб перевірити, чи правильно підключено, введемо після оператора mysql> запит, який відобразить всі бази даних зберігаються на сервері. Код запиту:

show databases;

Не забувайте в кінці запиту ставити крапку з комою, інакше система видасть повідомлення про помилку. Після введення запиту і натискання на клавішу «Enter» ми отримали список всіх баз, що зберігаються на сервері СУБД:

Але цього нам мало. Давайте «копнемо» ще глибше в структуру. Розглянемо, як зайти в базу даних MySQL і отримати список всіх її таблиць. Нагадаю, що зараз ми вже авторизовані на сервері, тому нам буде потрібно лише ввести ще один запит:

show tables from db1;

show tables from db1;

db1 - це ім'я потрібної нам бази.

На скріншоті ми бачимо, що запитувана база даних містить всього одну таблицю.

Копаємо глибше!

Як то кажуть, «апетит» приходить після отримання результатів виконання коду. Тому постараємося копнути ще глибше, щоб отримати дані, які зберігаються в таблиці. Перед тим, як увійти в MySQL ще раз, наведемо приклад SQL-запиту, за допомогою якого ми зможемо здійснити задумане:

SELECT * FROM animal;

SELECT * FROM animal;

Вводимо запит, запускаємо на виконання і .... Чомусь сервер видав нам помилку.

І все тому, що ми забули вказати MySQL, яка з баз нас цікавить. Ось сервер і «лається», що жодна з БД не виділена. Це ще раз доводить, що робота з СУБД через командний рядок сильно відрізняється від взаємодії з нею через програмну оболонку.

У phpMySQL даний запит був би успішно виконаний і сервер повернув вибірку з усіх рядків, що містяться в запитуваної таблиці.

Виправимо наше загальне упущення (свою провину завжди важко визнавати), і перед тим, як увійти в MySQL через консоль знову, підготуємо «специфічний» запит, з допомогою якого ми вкажемо системі потрібну БД:

USE db1;

Після введення цього рядка і її виконання сервер виведе повідомлення, яке підтверджує, що потрібна база даних виділена.

І тепер введемо і запустимо запит на вибірку всіх даних з таблиці animal ще раз. «Щоб були дані!» - сказав адміністратор, і запустив на виконання SELECT. Докопалися до бази db1, і отримали вміст таблиці animal. Не дарма перед тим, як увійти в базу даних MySQL, ми провели цілий «ритуал», і написали правильне «заклинання» на мові SQL.

Що можна ще накопати?

Вглиб ми «докопалися» до самого дна MySQL. Тепер давайте «копнемо» трохи в сторону. Які ще відомості можна отримати через командний рядок, опитуючи MySQL? Хочете дізнатися структуру таблиці, типи даних всіх стовпців, первинний ключ? Будь ласка! Запустіть на виконання цей запит:

describe animal;

describe animal;

Іноді, щоб знати, як включити сервер MySQL, потрібно отримати список всіх зареєстрованих користувачів СУБД. Для цього використовується наступний запит.

Привіт, шановні читач блогу, настав час змінити звичного phpMyAdmin, з більш агресивним інструментом для управління базою даних. Сьогодні ми помацаємо MySQL консоль і навчимося виконувати стандартні команди, а також команди з відновлення баз даних. MySQL консоль- це стандартна СУБД (Система управління базами даних)для MySQL, що поставляється разом з продуктом.

Коли може стати в нагоді MySQL консоль

З точки зору початківця web-програміста, phpMyAdminвиконує всі необхідні для нормальної роботифункції. Уявіть, що ви не тільки web-програміст, але і, від частини, системний адміністратор, який зобов'язаний відновити БД після збою.

У цьому випадку без навичок роботи з MySQL консоллю, вам не обійтися. Трохи пізніше ми розглянемо команди для відновлення бази за допомогою консолі, ну а поки почнемо з азів.

Як запустити MySQL консоль

Запустити консоль можна через провідник windows, знайшовши в папці з MySQL утиліту mysql.exe. Зазвичай вона знаходиться за адресою: [Шлях до папки] \ mysql \ bin \ mysql.exe. У разі використання Денвера, MySQL консоль, Варто шукати в цьому напрямку:
C: \ WebServer \ usr \ local \ mysql \ bin \ mysql.exe

Крім провідника windows, Можна використовувати командний рядок:

  • запустіть cmd.exe
  • Напишіть повний шлях до файлу mysql.exe
  • натисніть enter

Ви повинні спостерігати таку картину:

Помилка говорить про те, що для запуску консолі mysql необхідно ввести логін і пароль користувача. При роботі з Денвера, стандартним користувачем бази є root з порожнім паролем.
Виконайте ту ж саму команду з додатковими параметрами, що вказують дані для авторизації.

C: \ WebServer \ usr \ local \ mysql-5.1 \ bin \ mysql.exe -u root -p

Якщо все зроблено вірно, ви отримаєте повідомлення " Ласкаво просимо в MySQL консоль ..."

Переконатися в тому, що ви успішно підключені до сервера БД, можна ввівши команду show databases; . В результаті її виконання буде виведений перелік присутніх баз даних на сервері.

Спробуємо вибрати одну з БД і подивитися список таблиць в ній:

use test; show tables;

У моєму прикладі я звертаюся до бази test, якщо у вас такий не існує, зверніться до будь-якої іншої з наявних.

В якості експерименту ви можете спробувати створити базу test, за допомогою команди:

create database test;

На що отримаєте повідомлення: " QUERY OK, 1 row affected", Які проголошують про успішне створення бази даних з ім'ям test.

Тепер давайте створимо в базі test таблицю order.

create table test ( `id` int (11),` content` varchar (255));

І знову виконаємо команду show tables; , Яка покаже, що таблиця дійсно створена, і доступна для роботи з нею.

Також можна спробувати вивести список колонок в таблиці:

show columns from test.order;

Ну і на завершення знайомства з консоллю MySQL, Виконаємо будь-якої запит:

SELECT * FROM test.order;

Отже, шановні читачі, я вас вітаю, тепер ви можете працювати з MySQL в спартанських умовах без phpMyAdmin. Наведу деякий список, повсякденних, команд:

  • CREATE DATABASE DB_NAME; - створити нову бд;
  • SHOW DATABASES; - перегляд наявних бд;
  • USE DB_NAME; - вибрати бд;
  • SHOW TABLES; - перегляд всіх таблиць;
  • SHOW COLUMNS FROM TABLE_NAME; - перегляд колонок і їх властивостей;
  • CREATE TABLE TABLE_NAME ( `ID` INT (11),` NAME` VARCHAR (255));- створення таблиці;
  • ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT (11);- додати колонку в таблицю;
  • ALTER TABLE TABLE_NAME DROP COLUMN_NAME;- видалити колонку з таблиці;
  • MYSQL -UUSERNAME -PPASSWORD -HHOST DB_NAME - залити бд;
  • MYSQLDUMP -UUSERNAME -PPASSWORD -HHOST DB_NAME> FILE_NAME.SQL- зробити дамп бд;
  • QUIT; - вихід з консольку MySQL.

Команди для відновлення таблиць через консоль MySQL

Як і обіцяв на початку статті, викладаю команди для відновлення таблиць. Дані команди можуть стати в нагоді після збою сервера.

Сподобалася стаття? Поділіться з друзями!