Как добавить нового пользователя и назначить ему таблицу в MySQL. Основы.

Для работы с окружением я долгое время использовал 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 команд

Шаг 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;

Выполнив данную команду можно убедиться что наш вновь созданный юзер присутствует в списке.

Шаг 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
  2. Введем пароль password, который мы задавали для этого пользователя.
  3. Выведем список всех баз данных, которые доступны пользователю
    SHOW DATABASES;
  4. Выберем базу данных, которую мы создали
    USE my_first_database;
  5. Создадим таблицу в базе
    CREATE TABLE customers (
        firstname VARCHAR(30) NOT NULL, 
        lastname VARCHAR(30) NOT NULL
    );
  6. Убедимся что таблица создана
    SHOW TABLES;
  7. Добавим запись в таблицу
    INSERT INTO customers SET 
        firstname = 'demo', 
        lastname='user';
  8. Убедимся что запись была создана
    SELECT * FROM customers WHERE 1;
  9. Удалим запись из таблицы
    DELETE FROM customers WHERE firstname = 'demo';
  10. Убедимся что удаление успешно
    SELECT * FROM customers WHERE 1;
  11. Удалим таблицу из базы
    DROP TABLE customers;
  12. Убедимся что удаление успешно
    SHOW TABLES;

Как видите, мы можем полноценно управлять созданной базой данных.

Anatolii Koziura

Антураж-куражмонтаж в мире web разработки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *