Краткая инструкция по созданию и удалению баз данных и пользователей в системе управления базами данных MySQL и MariaDB из консоли.
В первую очередь входим в консоль mysql под суперпользователем root
# mysql -u root -p
Работа с базами данных
Просмотреть список баз данных в системе или на сервере можно командой
SHOW DATABASES;
Для создания базы данных с именем new_db нужно воспользоваться командой
CREATE DATABASE new_db;
Чтобы удалить базу данных new_db, вводим команду
DROP DATABASE new_db;
Проверяем
SHOW DATABASES;
и база данных new_db в списке должна отстуствовать.
Работа с пользователями
Создать пользователя БД можно командой
CREATE USER 'dbuser'@'*' IDENTIFIED BY 'password';
- dbuser — имя пользователя
- * означает, что пользователь может подключиться удалённо (для того, чтобы пользователь мог подключиться только локально, необходимо заменить звёздочку на localhost)
- password — пароль для этого пользователя
Изменить пароль существующему пользователю можно с помощью команды:
SET PASSWORD FOR 'dbuser'@'*' = PASSWORD('yourNewPassword');
Чтобы задать права пользователю dbuser на базу данных new_db, необходимо воспользоваться командой
GRANT ALL PRIVILEGES ON new_db.* TO 'dbuser'@'*'; FLUSH PRIVILEGES;
Теперь для того, чтобы подключиться с учётной записью пользователя dbuser, необходимо выйти из консоли mysql
EXIT;
и войти в неё уже пользователем dbuser
# mysql -u dbuser -p
Чтобы задать пользователю определённые права, их необходимо прописать через запятую вместо ALL. В СУБД MySQL и MariaDB существуют следующие права:
- CREATE — создание БД и таблиц
- SELECT — выборка данных
- INSERT — добавление записей в таблицы
- UPDATE — изменение/обновление существующих записей в таблицах
- DELETE — удаление записей из таблиц
- DROP — удаление таблиц и записей в них
Например:
GRANT SELECT, INSERT, UPDATE ON new_db.* TO 'dbuser'@'*'; FLUSH PRIVILEGES;
Чтобы создать пользователя с неограниченными правами (аналогично суперпользователя root), команду необходимо привести к следующему виду:
GRANT ALL PRIVILEGES ON *.* to 'dbuser'@'*'; FLUSH PRIVILEGES;
Чтобы отозвать права у пользователя, например, лишить его всех прав на базу данных new_db, необходимо запустить такую команду
REVOKE ALL PRIVILEGES ON new_db.* FROM 'dbuser'@'*'; FLUSH PRIVILEGES;
Чтобы просмотреть права пользователя, необходимо запустить команду
SHOW GRANTS FOR 'dbuser'@'*';
Удалить пользователя полностью можно командой
DROP USER 'dbuser'@'*';
Этот пользователь полностью исчезнет из всех баз данных, к которым он был привязан.