Создать пользователя MySQL для базы данных можно из консоли сервера. Подключиться потребуется с правами root. То же самое можно проделать через веб-интерфейс PHPMYADMIN, но описанный ниже способ универсален.
Прежде всего нужно подключиться к консоли
Если MySQL работает локально, на том же сервере, с которого идет подключение, то команда такая:
mysql -u root -p
После ее выполнения нужно ввести пароль root MySQL.
Пароль часто хранится в файле /root/.my.cnf. Этот файл считывается автоматически, если файл есть и пароль актуален, то достаточно выполнить
mysql
Как создать пользователя базы данных MySQL
Пользователь создается такой командой:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
user здесь — имя пользователя
password — его пароль
localhost — хост, с которого к серверу баз данных будет подключаться пользователь. Обычно localhost.
Но может указываться ip адрес если подключение внешнее и выполняется по сети. Также может указываться знак %, он будет означать что возможно подключение с любого внешнего ip.
Пользователь MySQL создан, однако каких либо прав на работу с базами данных у него нет
Предоставление доступа пользователю MySQL к базам данных
Если базы данных еще нет, она создается запросом
CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON * . * TO 'user'@'localhost';
* . * здесь означает все таблицы всех баз данных.
Любую из звездочек можно заменить именем базы и/или таблицы. Например:
GRANT ALL PRIVILEGES ON mydb .* TO 'user'@'localhost';
ALL PRIVILEGES предполагает права на чтение, редактирование, изменение и удаление и т.п. таблиц и баз.
Чтобы изменения вступили в силу необходимо выполнить:
FLUSH PRIVILEGES;
Команду нужно выполнять каждый раз при редактировании реквизитов пользователей и прав доступа
На этом всё. Создание пользователя MySQL и предоставление ему прав выполнено.
Протестировать доступ от имени созданного пользователя можно выйдя из консоли MySQL
quit
и подключившись к ней и реквизитами добавленного пользователя, в примере это user
mysql -u user -p
Далее справка по правам доступа и другим базовым операциям с пользователями MySQL
Привилегии пользователя сервера баз данных
Полный список возможных опций:
- ALL PRIVILEGES — полный доступ к заданной таблице/базе данных или всем таблицам/базам.
- CREATE — право создавать новые таблицы/базы данных.
- DROP — право удалять таблицы/базы данных.
- SELECT — право выполнять чтение из таблиц/баз данных
- UPDATE — право редактировать строки таблиц
- DELETE — право удалять строки из таблиц
- INSERT — право добавлять строки в таблицу
- GRANT OPTION — право назначать или удалять права доступа для других пользователей
Права можно также отозвать используя REVOKE
Например:
REVOKE UPDATE ON *.* FROM ‘user’@‘localhost’;
Пользователя можно удалить тем же образом, что и базу данных
DROP USER 'user'@'localhost’;
Обновить пароль пользователя сервера баз данных
UPDATE mysql.user SET Password=PASSWORD('password123') WHERE USER='user' AND Host='localhost';
Вывести в консоль всех существующих пользователей и их пароли с привязкой к хосту
use mysql
SELECT host, user, password FROM mysql.user;
Теми же командами можно при желании работать во вкладке «SQL» веб-интерфейса phpmyadmin и его аналогов (таких как adminer.php).