Как создать пользователя mysql через командную строку linux?

Логинимся под рутом

Пароль невидимый, как всегда.

root ~ # mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 50535903
Server version: 10.3.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Выбираем системную базу данных MySQL

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

Создаем пользователя

MariaDB [mysql]> CREATE USER 'romasa_i'@'localhost' IDENTIFIED BY 'retY@@th56dE';
Query OK, 0 rows affected (0.003 sec)

Мы создали локального пользователя с именем romasa_i и паролем retY@@th56dE .

localhost здесь – это имя хоста, с которого может подключаться этот пользователь. Вместо localhost может быть доменное имя, IP-адрес, адрес подсети или знак “%”, который означает все возможные хосты. То есть вместо @’localhost’ можно было написать: @’%’ . Тогда бы пользователь мог подключиться с любого хоста.

Даём пользователю привилегии к базе данных

MariaDB [mysql]> GRANT ALL PRIVILEGES ON romasa_i.* TO 'romasa_i'@'localhost';
Query OK, 0 rows affected (0.004 sec)

Здесь:

  • ALL PRIVILEGES – все привилегии;
  • romasa_i.* – к базе данных romasa_i, ко всем таблицам (* – значит все таблицы);
  • TO ‘romasa_i’@’localhost’ – для пользователя ‘romasa_i’@’localhost’;

Обновляем привилегии

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)

Смотрим привилегии

MariaDB [mysql]> SHOW GRANTS FOR 'romasa_i'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for romasa_i@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'romasa_i'@'localhost' IDENTIFIED BY PASSWORD '*21C6BAC758F974C18C04C5555555D3EF973F249D' |
| GRANT ALL PRIVILEGES ON `romasa_i`.* TO 'romasa_i'@'localhost'                                                  |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

Список привилегий

Привилегии перечисляются через запятую, то есть:

GRANT SELECT,INSERT,UPDATE ON romasa_i.* TO 'romasa_i'@'localhost';

даст пользователю привилегии на SELECT,INSERT,UPDATE .

Привилегии бывают:

  • ALL PRIVILEGES – все, кроме GRANT;
  • USAGE PRIVILEGES – никаких привилегий;
  • SELECT – делать выборки из таблиц;
  • INSERT – вставлять данные в таблицу;
  • UPDATE – обновлять данные в таблице;
  • DELETE – удалять данные из таблицы;
  • FILE – разрешает читать файлы на сервере;
  • CREATE – создавать таблицы или базы данных;
  • ALTER – изменять структуру таблиц;
  • INDEX – создавать индексы для таблиц;
  • DROP – удалять таблицы;
  • EVENT – обработка событий;
  • TRIGGER – создание триггеров.

Также доступны такие привилегии администрирования баз данных:

  • GRANT – изменять права пользователей;
  • SUPER – суперпользователь;
  • PROCESS – получение информации о состоянии MySQL;
  • RELOAD – позволяет перезагружать таблицы привилегий;
  • SHUTDOWN – позволяет отключать или перезапускать базу данных;
  • SHOW DATABASES – просмотр списка баз данных;
  • LOCK TABLES – блокирование таблиц при использовании SELECT;
  • REFERENCES – создание внешних ключей для связывания таблиц;
  • CREATE USER – создание пользователей;

Более полная информация: https://losst.ru/sozdanie-polzovatelya-mysql

0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x