← Повернутись до блогу

Як додати нового користувача та призначити йому таблицю в MySQL. Основи.

September 2018 4 хвилини на читання 174 перегляди

Для роботи з оточенням я довгий час використовував Denver, OpenServer, Docker, при цьому почував себе програмістом на всі 100 відсотків, адже знаю PHP і JS! Але сьогодні відчув себе нікчемою, коли при створенні нового проєкту налаштовував оточення в docker, і не зміг розібратися з базами даних протягом 3-х годин. Як підсумок цих мук, я вирішив заглибитись в основи і встановити все, що мені необхідно для роботи окремо.

UPD: Написавши цю статтю, я зрозумів, що помилка була пов’язана саме з версією mysql та її роботою з Laravel. Рішення знайшов, все добре, не хвилюйтеся 🙂

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

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

Крок 0: Встановлення mysql сервера

Зрозуміло, що без встановленого mysql у вас нічого не вийде. Завантажити та встановити mysql можна з офіційного сайту.

Тут все просто:

  1. Завантажуємо MySQL community server
  2. Встановлюємо
  3. При встановленні вас попросять створити пароль для root користувача. Запам’ятовуємо його, він знадобиться в подальшому

Крок 1: Авторизуємося в базі даних під root користувачем

Перш ніж авторизуватися — переконайтеся, що mysql запущено. У mac OS запустити та зупинити його можна з розділу системних налаштувань.

Для авторизації в mysql під root користувачем слід використовувати таку команду для командного рядка:

mysql -u root -p

Після виконання команди — рядок попросить вас ввести той пароль, який ви задали при встановленні MySQL.

Якщо пароль неправильний — про це повідомить консоль, вивівши на екран таку інформацію:

Помилка входу в sql

Якщо пароль введено правильно, буде відображено запрошення введення sql команд:

Вірний вхід в sql

Крок 2: Створюємо нову базу даних

Нова база даних може бути створена за допомогою такої команди:

CREATE DATABASE my_first_database;

my_first_database — назва бази даних

Після виконання команди — MySQL повідомить про успішне створення бази, вивівши на екран консолі Query OK, 1 row affected (0.04 sec)

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

SHOW DATABASES;

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

Як ми бачимо — у списку присутня наша база з іменем my_first_database, а отже, можна переходити до наступного кроку.

Крок 3: Створюємо нового користувача

За аналогією з попереднім кроком, для створення нового користувача слід ввести таку команду:

CREATE USER 'my_first_user'@'localhost' IDENTIFIED BY 'password';

my_first_user — ім’я користувача password — пароль

Результат виконання цієї команди має бути:

Query OK, 0 rows affected (0.04 sec)

А команда нижче покаже список всіх користувачів, створених у MySQL:

SELECT User FROM mysql.user;

Виконавши цю команду, можна переконатися, що наш новостворений користувач присутній у списку.

Список користувачів в mysql

Крок 4: Призначаємо користувачу привілеї для редагування бази даних

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

GRANT ALL PRIVILEGES ON my_first_database.*  TO 'my_first_user'@'localhost';

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

my_first_user — вказує на користувача, якому призначаються права;

ALL PRIVILEGES — тип прав, рядок all — означає, що користувачеві надаються всі права, але їх можна передати окремо:

  • ALL PRIVILEGES — як ми бачили раніше, це дасть користувачеві MySQL повний доступ до заданої бази даних (якщо база даних не вказана, то до всіх).
  • CREATE — дозволяє створювати нові таблиці або бази даних.
  • DROP — дозволяє видаляти таблиці або бази даних.
  • DELETE — дозволяє видаляти рядки з таблиць.
  • INSERT — дозволяє додавати рядки в таблицю.
  • SELECT — дозволить використовувати команду Select для читання з баз даних.
  • UPDATE — дозволить редагувати рядки таблиць.
  • GRANT OPTION — дозволить призначати або видаляти права доступу для інших користувачів.

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

Крок 5: Переконаємося, що все працює правильно

  1. Відкриємо нову вкладку командного рядка і спробуємо авторизуватися:
mysql -u my_first_user -p
  1. Введемо пароль password, який ми задавали для цього користувача.
  2. Виведемо список всіх баз даних, які доступні користувачу:
SHOW DATABASES;
  1. Виберемо базу даних, яку ми створили:
USE my_first_database;
  1. Створимо таблицю в базі:
CREATE TABLE customers (
    firstname VARCHAR(30) NOT NULL, 
    lastname VARCHAR(30) NOT NULL
);
  1. Переконаємося, що таблиця створена:
SHOW TABLES;
  1. Додамо запис у таблицю:
INSERT INTO customers SET 
    firstname = 'demo', 
    lastname='user';
  1. Переконаємося, що запис було створено:
SELECT * FROM customers WHERE 1;
  1. Видалимо запис з таблиці:
DELETE FROM customers WHERE firstname = 'demo';
  1. Переконаємося, що видалення успішне:
SELECT * FROM customers WHERE 1;
  1. Видалимо таблицю з бази:
DROP TABLE customers;
  1. Переконаємося, що видалення успішне:
SHOW TABLES;

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

2018–2025 (c) Списуй але не один в один