MySQL Создать базу данных создать пользователя добавить к БД

Мы уже разбирали вариации работы с базами данных MySQL через командную строку.
На этот раз, двигаясь в обратном направлении, рассмотрим основное, то, с чего собственно наша БД начнётся.
Решим три задачи:

  1. Во-первых, создадим базу данных;
  2. Во-вторых, создадим пользователя, который впоследствии будет работать с новой БД;
  3. И наконец, в-третьих, назначим пользователю привилегии. Так сказать – добавим пользователя в базу данных (иначе у нас может возникнуть проблема доступа, ошибка error 1044: Access denied for user ‘User’@'localhost’ to database ‘db_name’ ).

Итак, чтобы всё получилось, создадим базу MySQL. Открываем терминал доступа к сайту по SSH, входим как root.
Теперь нужно войти в сам СУБД (систему управления базами данных) mysql:
root# mysql -umysql_root_user -ppassword
Как видите, сперва Вам понадобится имя и пароль главного пользователя имеющего все привилегии (ALL PRIVILEGES).
Обычно этого пользователя для Вас создаёт хостинг-провайдер и он совпадает с доступом в панель управления базами данных (например, в phpMyAdmin).
Строго говоря с базами данных можно работать (то есть делать обычные запросы SELECT, INSERT, UPDATE). Но гораздо нагляднее, и по ряду причин безопаснее, создать нового пользователя для каждой отдельной базы. Этим Мы и займемся.Итак, мы вошли в режим управления mysql, набрав одноименную команду в окне терминала SSH. Теперь мы можем сразу приступить к созданию новой БД:
CREAT DATABASE IF NOT EXISTS db_name
db_name – название новой базы данных;
IF NOT EXISTS – говорит команде CREAT создать базу только если одноименная база ещё не существует.

Следующий этап – создание пользователя:
CREAT USER 'newUser'@'localhost' IDENTIFIED BY 'password'
newUser – имя нового пользователя;
localhost – адрес, хост на котором работает MySQL,  в большинстве случаев хост так и указывается localhost, но некоторые хостинг провайдеры используют отличное имя хоста;
password – парлоль для созданного пользователя (пароль должен быть достаточно сложным, состоять из латинских букв, в верхнем и нижнем регистре, с использованием цифр, а иногда и спецсимволов).
Последнее, что нужно сделать, назначить созданному пользователю достаточно привилегий для работы с новой БД:
GRANT ALL ON db_name.* TO 'newUser'@'localhost'
ALL – все привелегии (кроме GRANT);
db_name.* – означает, что привилегии данного пользователя распространяются на все таблицы базы данных (пример ограничения привилегий пользователя для одной таблицы: db_name.table1);
‘newUser’@'localhost’ – этот тот самый, созданный нами выше, пользователь.

Всё! Теперь можно подключаться к базе данных либо снова через командную строку, либо через PHP скрипт (о чём поговорим попозже).

Кстати, GRAND можно использовать для ограничения пользователя, например на количество запросов в час (это может спасти Вашу базу данных mysql от перегрузки):
GRANT USAGE ON *.* TO 'newUser'@'localhost'  WITH MAX_QUERIES_PER_HOUR 100;
таким образом, мы ограничили количество запросов от пользователя newUser на локальном хосте, 100 запросами в час (MAX_QUERIES_PER_HOUR). Причём это ограничение распространяется на все БД и на все таблицы (*.*)

Опубликовано 11.08.2013 в 06:54 · Автор Вебдизайнеру, сисадмину, вебмастеру · Ссылка
Рубрики: Debian, FreeBSD, MySQL, PHP программирование, Настройки хостинга, Системное администрирование · Теги: , , , , , , , , , , , ,