Урок 9: Создание базы данных MySQL в phpMyAdmin

С MySQL мы немного познакомились на уроке "Установка и настройка MySQL", а также установили его на свой компьютер. Как вы знаете, веб-сервер Apache позволяет на одном компьютере разместить множество веб-сайтов. В свою очередь, MySQL позволяет обслуживать множество баз данных. Обычно веб-мастера для каждого сайта создают отдельную базу данных, в каждой базе данных находятся таблицы с данными определенного сайта.

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

Рассмотрим процесс создания базы данных при помощи phpMyAdmin. Допустим, мы хотим установить форум на сайте, для него необходимо завести отдельную базу данных. Для этого заходим в phpMyAdmin под пользователем root (как установить phpMyAdmin рассказывается в этом уроке) и переходим в раздел "Привилегии":

жмем "Добавить нового пользователя":

Откроется форма добавления пользователя:

Введем имя пользователя, связанное по смыслу с назначением создаваемой базы данных. Мы в качестве примера создаем базу данных для форума, поэтому пользователя называем forum. Если MySQL и веб-сервер расположены на одном компьютере, то выбираем Хост: локальный для повышения безопасности. Пароль можно ввести самому, либо сгенерировать. Обязательно запомните пароль! Установите флажок "Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии". Нажмите "Создать пользователя".

Выходим из phpMyAdmin и заходим снова уже под именем и паролем созданного пользователя. В списке баз данных должна быть доступна только база данных, совпадающая с именем пользователя (помимо системной базы данных information_schema):

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

<?php
  $link = mysql_connect('localhost', 'forum', '<пароль_пользователя_forum>');
  if (!$link) {
      die('Невозможно соединиться: ' . mysql_error());
  }
  echo 'Успешно соединено';
  mysql_close($link);
?>

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

Комментарии

Оставить комментарий »

 
anonym
5 декабря 2011, 8:56
#1
 

Ну наконец то нашлося первое нормальное объяснение. И это после более 20ти просмотренных ссылок. :). (У меня почему то xampp на англ., а phpmyadmin на немецком. Выбирал англ. язык). Спасибо.

p-c
20 декабря 2011, 15:51
#2
 

О_О в phpmyadmin не создать БД и пользователя? Я в офиге.

Вася Пупкин
16 марта 2012, 11:32
#3
 

А не проще: CREATE DATABASE
и потом добавляй привелегии пользователя

Joker-jar
16 марта 2012, 11:37
#4
 

Запросами можно проделать и без phpMyAdmin, а тут имеется ввиду с использованием его.

Alex
21 мая 2012, 15:54
#5
 

Спасибо!

Лариса
21 сентября 2012, 11:45
#6
 

В последней версии phpMyAdmin вместо "Привелегии" пункт называется "Пользователи". При добавлении нового пользователя экранчик выглядит по-другому, добавлена куча новых настроек. А в остальном - замечательно, все получилось!

Joker-jar
21 сентября 2012, 12:20
#7
 

Лариса, полезные уточнения, спасибо. Рад, что у вас получилось!

Антон
8 ноября 2012, 15:57
#8
 

Всем привет!
А подскажите лузеру который только начал учиться создавать сайты на php, как можно создать регистрацию пользователей который при регистрации может вводить имя, фамилию, год рождения, рост, вес, добовлять фотографию и краткое описание о своей жизни...
Это не сайт знакомств и мне не надо, чтобы зарегистрированные пользователи могли между собой общаться...
Может кто то может помочь или знает где можно посмотреть видеоурок на реальном примере, искренне буду благодарен...
С ув. Антон

Joker-jar
9 ноября 2012, 7:30
#9
 

Антон, здравствуй. Подсказывать по таким вопросам очень сложно, т.к. практически все зависит от кодовой базы, которая у вас уже есть по сайту. Если очень образно, то делается это следующим образом: для регистрации пользователей создается таблица, которая будет содержать столбцы, необходимые для хранения нужной Вам информации (логин, пароль, имя, фамилия, рост, вес и т.д.). Форма регистрации должна содержать поля для ввода всей этой информации. При отправке формы скрипт выполняет различные проверки (например, существует ли уже введенный логин, соответствует ли пароль критериям и т.п.) и, если все ок, добавляет запись в таблицу, иначе выводит предупреждение о возникших ошибках. Если что, можете создать вопрос в разделе "Вопросы и ответы", будем там постепенно разбираться.

ProMo
18 февраля 2013, 12:16
#10
 

Привет!!! Клёвый ресурс! Огромное спасибо Joker-jar за всю предоставленную здесь инфу! Всё получается, всё выходит пока, есть конечно небольшие отличия в действиях которые описаны здесь и которые я произвожу, т.к ставлю более новые версии продуктов, но на данном этапе у меня возник такой вопрос!!! Сразу говорю, что нифига не понимал ничего в сайтостроении до того как не начал изучать данный ресурс, поэтому сообщения, которые находятся в нижней части окна phpMyAdmin немного меня напрягают:

1. Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены. Для определения причины нажмите здесь.

2. Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP.

3. При работе с многобайтными кодировками без установленного расширения PHP "mbstring", phpMyAdmin не в состоянии производить корректное разбиение строк, что может привести к непредсказуемым результатам. Установите расширение PHP "mbstring"

4. При cookie-аутентификации, в конфигурационном файле необходимо задать парольную фразу установив значение директивы $cfg['blowfish_secret']

Нужно ли мне сейчас обращать на них внимание и что это за сообщения? Нужно ли что то исправить или и так всё будет нормально работать? Подскажите пожалуйста, если не затруднит!

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий