Linux создать пользователя базы данных

Как создать пользователя mysql

Все современные приложения запрашивают подключение базы данных. Она служит так называемым хранилищем электронной информации. Помимо этого существуют системы управления этими базами. Одной из самых популярных систем на сегодняшний день является MySQL.

Коротко о базе данных MySQL

Система управления БД MySQL особенно приходится по душе тем, кто любит упорядочивать информацию в табличном виде. Стоит выполнить запрос, и информация извлекается из таблиц. Информация, имеющаяся в таблицах, строго упорядочена. Расположение строк напрямую зависит от данных, размещенных в таблице – при необходимости оно может видоизменяться.

Процесс заполнения таблиц обеспечивает SQL (язык программирования).

  1. Быстрый доступ к информации;
  2. Быстрая обработка информации;
  3. Надежная защита данных;
  4. Бесплатное пользование;
  5. Понятный интерфейс;
  6. MySQL совместим с ОС Windows и Linux;
  7. Есть шифрование личных данных (паролей).

А теперь перейдем от теории к практике.

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

Пользователь для базы

Заходим в консоль mysql от имени root.

ВАЖНО! Если Вы уже залогинились от пользователя root, достаточно ввети команду без параметров — mysql

После этого можно приступать к реализации главной идеи. То есть, добавление нового юзера посредством CREATE USER. Ниже мы распишем синтаксис этой команды.

CREATE USER ‘имя_пользователя’@’хост’ IDENTIFIED BY ‘пароль для пользователя’;

Следуя вышеуказанному синтаксису, юзеру необходимо задать следующую информацию: имя пользователя и тот хост, откуда можно пройти авторизацию. В текущей ситуации указание символа «%» – способ обозначения всех возможных хостов.

Теперь разберем, как создать нового локального юзера через терминал. Просто вводим в строке текст следующего вида:

CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘parol’;

Соответственно, чтобы добавить юзера, доступ к которому появится со всевозможных хостов, нужно поменять в команде «localhost» на «%», как это уже упоминалось ранее.

Теперь зададим команду для просмотра всех добавленных юзеров. Она выглядит следующим образом:

SELECT User,Host FROM mysql.user;

Как дать права пользователю

Далее необходимо позаботиться о том, чтобы для нового юзера MySQL были назначены правильные привилегии. Для этих целей будет применять специальная команда. Она прописывается так:

GRANT привилегии ON база_данных . таблица ТО ‘имя_пользователя’@’хост’;

Какие права назначать пользователю системы – вопрос индивидуальный. Каких-либо чётких рекомендаций здесь быть не может. Единственное, о чем стоит упомянуть, так это о предоставлении всех прав над базой данных. Возможно, кому-то подойдет именно такой вариант. Как это сделать? Рассмотрим ниже.

Читайте также:  Сочетания клавиш linux debian

GRANT ALL PRIVILEGES ON test_database . * TO ‘new_user’@’localhost’;

Чтобы открыть окно с данными о привилегиях пользователя, необходимо выполнить следующее действие:

SHOW GRANTS FOR ‘new_user’@’localhost’;

На этом еще не всё! После выполненных действий крайне важно произвести обновление таблицы прав пользователей. Это делается так:

Пользователями с правами root mysql

Рассмотрим еще один вероятный сценарий развития событий. На тот случай, если кому-нибудь понадобится создать пользователя с правами root MySQL. Потребуется еще раз воспользоваться терминалом для реализации задуманного:

Итак, водим текст такого вида:

GRANT ALL PRIVILEGES ON * . * TO ‘new_user’@’localhost’;

Теперь пользователь имеет все необходимые привилегии. Однако остаётся маленькая загвоздка. Она заключается в отсутствии возможности предоставлять права другим пользователям от имени этого юзера. Текущая проблема может быть решена так:

GRANT ALL PRIVILEGES ON * . * TO ‘new_user’@’localhost’ WITH GRANT OPTION;

Готово! Суперпользователь MySQL добавлен, все необходимые привилегии предоставлены.

Инструкция по созданию пользователя MySQL, предоставленная в данном материале, актуальна для Ubuntu и других дистрибутивов Debian, Centos.

Источник

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

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

В этом руководстве объясняется, как использовать командную строку для создания и управления базами данных MySQL или MariaDB и пользователями.

Подготовка

Прежде чем вы начнете с этого руководства, мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB. Все команды будут выполняться от имени пользователя root.

Чтобы открыть приглашение MySQL, введите следующую команду и при появлении запроса введите пароль пользователя root MySQL:

Создать новую базу данных MySQL

Чтобы создать новую базу данных MySQL, выполните следующую команду, просто замените database_name на имя базы данных, которую вы хотите создать:

CREATE DATABASE database_name;
Query OK, 1 row affected (0.00 sec) 

Если вы попытаетесь создать базу данных, которая уже существует, вы увидите следующее сообщение об ошибке:

ERROR 1007 (HY000): Can't create database 'database_name'; database exists 

Чтобы избежать ошибок, если база данных с тем же именем, которое вы пытаетесь создать, существует, вы можете использовать следующую команду:

CREATE DATABASE IF NOT EXISTS database_name;
Query OK, 1 row affected, 1 warning (0.00 sec) 

В выходных данных выше Query OK означает, что запрос был успешным, а одно 1 warning сообщает нам, что база данных уже существует и новая база данных не была создана.

Читайте также:  Asus usb n14 linux

Список всех баз данных MySQL

Вы можете перечислить все базы данных , существующие на нашем сервере MySQL или MariaDB, с помощью следующей команды:

Результат будет выглядеть примерно так:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) 

Базы данных information_schema , mysql , performance_schema и sys создаются во время установки и хранят информацию обо всех других базах данных, конфигурации системы, пользователях, разрешениях и других важных данных. Эти базы данных необходимы для правильной работы установки MySQL.

Удалить базу данных MySQL

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

Чтобы удалить MySQL или MariaDB, в базе данных выполните следующую команду:

DROP DATABASE database_name;
Query OK, 0 rows affected (0.00 sec) 

Если вы попытаетесь удалить несуществующую базу данных, вы увидите следующее сообщение об ошибке:

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist 

Чтобы избежать этой ошибки, вы можете использовать следующую команду:

DROP DATABASE IF EXISTS database_name;

Создайте новую учетную запись пользователя MySQL

Учетная запись пользователя в MySQL состоит из частей имени пользователя и имени хоста.

Чтобы создать новую учетную запись пользователя MySQL, выполните следующую команду, просто замените database_user именем пользователя, которого вы хотите создать:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

В приведенной выше команде мы установили часть имени хоста на localhost что означает, что этот пользователь сможет подключаться к серверу MySQL только с локального хоста (то есть из системы, в которой работает сервер MySQL). Если вы хотите предоставить доступ с другого хоста (ов), просто измените localhost на IP-адрес удаленного компьютера или используйте подстановочный знак ‘%’ для части хоста, что означает, что учетная запись пользователя сможет подключаться с любого хоста.

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

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';
Query OK, 0 rows affected, 1 warning (0.00 sec) 

Изменить пароль учетной записи пользователя MySQL

Синтаксис для изменения пароля учетной записи пользователя MySQL или MariaDB зависит от версии сервера, который вы используете в своей системе.

Вы можете узнать версию своего сервера, выполнив следующую команду:

Если у вас MySQL 5.7.6 и новее или MariaDB 10.1.20 и новее, для изменения пароля используйте следующую команду:

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

Если у вас MySQL 5.7.5 и старше или MariaDB 10.1.20 и старше, используйте:

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

В обоих случаях результат должен выглядеть так:

Query OK, 0 rows affected (0.00 sec) 

Список всех учетных записей пользователей MySQL

SELECT user, host FROM mysql.user;

Результат должен выглядеть примерно так:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec) 

Удалить учетную запись пользователя MySQL

Чтобы удалить учетную запись пользователя , используйте следующую команду:

DROP USER 'database_user@'localhost';

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

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost' 

То же, что и при работе с базами данных, чтобы избежать ошибки, вы можете использовать:

DROP USER IF EXISTS 'database_user'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec) 

Предоставление разрешений учетной записи пользователя MySQL

Есть несколько типов привилегий, которые могут быть предоставлены учетной записи пользователя. Вы можете найти полный список привилегий, поддерживаемых MySQL здесь . В этом руководстве мы рассмотрим несколько примеров:

Читайте также:  Как открыть файлы на флешке в линукс

Чтобы получить все привилегии учетной записи пользователя в конкретной базе данных, используйте следующую команду:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Чтобы получить все привилегии учетной записи пользователя во всех базах данных, используйте следующую команду:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Чтобы получить все привилегии учетной записи пользователя над определенной таблицей из базы данных, используйте следующую команду:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

Если вы хотите предоставить учетной записи пользователя только определенные привилегии для определенного типа базы данных:

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Отзыв разрешений учетной записи пользователя MySQL

Если вам нужно отозвать одну или несколько привилегий или все привилегии от учетной записи пользователя, синтаксис почти идентичен предоставлению этого. Например, если вы хотите отозвать все привилегии учетной записи пользователя над определенной базой данных, используйте следующую команду:

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Показать права учетной записи пользователя MySQL

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

SHOW GRANTS FOR 'database_user'@'localhost';
+---------------------------------------------------------------------------+ | Grants for [email protected] | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec) 

Выводы

Это руководство охватывает только основы, но оно должно стать хорошим началом для всех, кто хочет научиться управлять базами данных MySQL и пользователями из командной строки. Вы также можете проверить руководство о том, как сбросить пароль root MySQL, если вы его забыли.

Это все! Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Оцените статью
Adblock
detector