Как создать базу данных MySQL
Здравствуйте уважаемый посетитель!
Прежде чем приступить к очередной теме создания сайта, хочу извиниться за задержку в написании статей. Но, как говорится, причина уважительная, так как связанно это было с работой по другим важным проектам. Надеюсь, в дальнейшем, дела насущные позволят мне рассмотреть все основные заявленные вопросы по развитию сайта в штатном режиме, с периодичностью 1-2 статьи в неделю.
Этой статьей начинается следующая часть сборника «Сделай сайт с нуля своими руками», которая в основном будет направлена на развитие и оптимизацию сайта, наполнение его контентом и необходимым функционалом.
А для того, чтобы в дальнейшем иметь возможность полноценно развивать сайт нам будет не обойтись без рассмотрения такого важного вопроса, как работа с базой данных MySQL (в дальнейшем для обозначения базы данных MySQL будет также встречаться аббревиатура «БД»).
В данной статье мы создадим базу данных на локальном веб-сервере Denwer и на хостинге, на котором размещен наш сайт.
Дальше, по ходу работ, будем формировать необходимые таблицы и скрипты, которые будут выполнять функцию хранения и обработки данных, получаемых при работе определенных блоков сайта.
- Зачем нужна база данных
- Что из себя представляет база данных MySQL
- Создаем базу данных на локальном веб-сервере Denwer
- Создаем базу данных на хостинге
Зачем нужна база данных
В предыдущих статьях мы занимались созданием основы сайта, включающее следующие основные этапы:
- разработка дизайн-макета;
- формирование веб-страниц с помощью HTML и CSS;
- создание динамического сайта с использованием PHP;
- адаптация сайта под мобильные устройства с помощью медиа-запросов;
- размещение сайта в интернете;
При этом на всех этих этапах не требовалось использования какой-либо базы данных.
А теперь, как было выше сказано, мы будем заниматься развитием сайта, куда будут включены, такие вопросы, как:
- наполнение контентом;
- работа с формами;
- учет информации о клиентах;
- учет информации о заказах;
- учет информации о полученных комиссионных;
- учет информации об отправленных и полученных e-mail;
- оптимизация;
Как видно, даже из названия вышеуказанных пунктов, нам потребуется где-то сохранять и обрабатывать необходимую информацию.
Но, наверное, может возникнуть вопрос, а зачем нужна вообще база данных? Ведь сохранять информацию можно и в обычных файлах?
Конечно, можно решать все эти вопросы и без базы данных, используя для этого содержимое файлов. Но, в таком случае операции по извлечению и сортировке будут куда более трудоемкими. Да и скорость получения информации из базы данных значительно быстрее, чем из файлов. А если к этому добавить объем кода, который потребуется для обработки данных, размещенных в файлах, то вопрос, использовать ли базу данных, отпадает сам собой.
Что из себя представляет база данных MySQL
О программном-сервере MySQL написано много различной справочной литературы, которую можно найти на специализированных интернет-ресурсах. Поэтому, при необходимости, не сложно будет более подробно ознакомится с теоретическими вопросами по этой информационной системе. Здесь же мы основное внимание уделим практическому применению этого инструмента для нашего сайта.
А для этого, на мой взгляд, вполне достаточно понимать только то, что база данных MySQL, по сути, представляет собой набор обычных таблиц, с которыми всем нам приходилось когда-то встречаться. И, поэтому, для тех, кто с этим знакомиться впервые, не стоит пугаться такого термина, как «база данных».
Эти таблицы могут иметь в зависимости от объема разное количество строк (записей) и столбцов (полей). Первый столбец обычно определяет уникальный идентификатор записи (его обычно называют «id»), а остальные поля назначаются в зависимости от их количества.
Таким образом, выбрав с помощью специальных запросов языка SQL какую-нибудь строку, мы можем выполнить с ней все необходимые действия, такие как записать в нее данные, извлечь, отсортировать или обновить.
Для того, чтобы наглядно это пояснить, ниже привожу скриншот фрагмента таблицы с одного из моих действующих сайтов, в которой ведется постоянный учет всех посещений, включая различные сервисы и поисковые роботы.
Такой прикладной инструмент дает возможность собирать информацию о всех посещениях сайта в заданный период, и в случае необходимости анализировать эти данные. Что особенно полезно для нештатных ситуаций. Если это кого-то заинтересует, дайте знать, в одной из последующих статей могу выложить соответствующий код и рассказать, как это работает.
Рис.1
При этом, в первом столбце можно видеть уникальные id для каждой строки таблицы, что позволяет их идентифицировать по этому значению.
К примеру, можно сделать SQL запрос, который переберет по порядку все значения id, и таким образом позволит извлечь данные из всей таблицы. А можно, сделав запрос по конкретному ip-адресу, отсортировать и проанализировать посещения, которые были сделаны именно с него.
В общем, имея какие-либо данные в таблице MySQL можно в зависимости от требуемой задачи извлекать нужную информацию.
Аналогично, используя запросы можно и записывать и обновлять содержимое таблиц.
Как видно, здесь ничего сложного нет. Главное, при работе с MySQL знать, как правильно составить запросы. Но, и в этом больших трудностей возникнуть не должно, в чем можно будет убедиться, когда в дальнейшем будем записывать и извлекать данные, необходимые при добавлении функционала сайта.
А сейчас, для того, чтобы иметь возможность формировать таблицы MySQL и с ними работать, создадим базу данных в локальном веб-сервере Denwer и на хостинге, где размещен сайт.
Создаем базу данных на локальном веб-сервере Denwer
Для работы с MySQL существует специальное приложение phpMyAdmin, представляющее веб-интерфейс для администрирования системы управления базами данных (СУБД). Этот инструмент позволяет через браузер осуществлять администрирование сервера MySQL, включая создание таблиц и просмотра их содержимого.
Таким образом, используя указанное приложение, мы и будем создавать базу данных MySQL.
Для этого, в начале, набрав в адресной строке браузера «http://localhost/Tools/phpMyAdmin/» откроем главную страницу php
Создание базы данных MySQL | IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.
Здравствуйте, уважаемые посетители блога ZametkiNaPolyah.ru. Продолжаем разговор о базах данных, сегодня будем разбираться с тем, как создать базу данных MySQL. Как вы уже знаете, минимальной информационной единицей любой реляционной базы данных является таблица – неделимое целое базы данных. Сегодня мы рассмотрим процесс создания базы данных. Для создания базы данных MySQL используется SQL запрос CREATE DATABASE, с его синтаксисом мы и ознакомимся в данной статье подробно.
Помимо создания базы данных можно создавать таблицы и наполнять их, для этого есть два оператора: CREATE TABLE и INSERT. Для создания таблицы MySQL – CREATE TABLE. Для наполнения таблицы используется оператор INSERT. На самом деле, на этом можно было бы и закончить описание создания базы данных MySQL, поскольку на официальном сайте есть подробная техническая документация по созданию таблиц и баз данных сервера MySQL, но есть несколько моментов, которые необходимо объяснить более подробно. О создании таблицы базы данных MySQL мы поговорим отдельно в одной из следующих публикаций.
Как хранится база данных MySQL
Содержание статьи:
Начнем мы не с создания базы данных MySQL, а с привилегий пользователей MySQL сервера. Стоит помнить, что создавать базы данных могут только те пользователи, которые имеют на это права, пользователь, не имеющий прав на создание базы данных, сделать этого не сможет.
К созданию базы данных MySQL переходить еще рано, давайте разберемся с тем, как хранится база данных MySQL сервера на жестком диске вашего компьютера, так будет проще понять принцип именования баз данных. Обратите внимание: у сервера MySQL есть несколько движков, точное количество сейчас я затрудняюсь назвать, для этого нужно смотреть техническую документацию. В любом случае, сами базы данных MySQL сервера хранятся одинакова вне зависимости от типа движка. Движок определяет способ хранения таблиц MySQL сервера.
Откройте консоль вашей операционной системы и запустите сервер MySQL: введите имя и пароль пользователя, который имеет права на создание базы данных MySQL. После чего введите команду:
//
//
Введя данный SQL запрос, вы сможете увидеть все созданные базы данных. Каталог, в котором хранятся базы данных MySQL сервера, вы определяли при установки и настройки MySQL сервера, в моем случае путь к каталогу выглядит следующим образом:
c:\ProgramData\MySQL\MySQL Server 5.6\data\
c:\ProgramData\MySQL\MySQL Server 5.6\data\ |
В этом каталоге находятся папки, имена которых полностью совпадают с именами баз данных MySQL, которые были отображены в консоли. Вывод: чтобы создать базу данных MySQL достаточно создать папку в каталоге data. Поэтому имена баз данных MySQL могут иметь ограничения. Максимальная длина имени базы данных MySQL не может превышать 64 символов. Для именования базы данных MySQL можно использовать все символы, разрешенные в операционной системе. MySQL сервер не разрешает использовать в именах баз данных следующие символы: слэш(/), точка, ASCII (0) и ASCII (255).
Если создать папку в каталоге data, то база данных MySQL автоматически будет создана, попробуйте создать папку в этом каталоге, а затем выполнить запрос SHOW DATABASES. Рассматривать содержимое папок (баз данных MySQL) сейчас не имеет смысла, поскольку каждый движок MySQL будет хранить таблицы по-своему.
Создание базы данных MySQL
Перейдем теперь к созданию базы данных MySQL. Создать базу данных MySQL позволяет запрос CREATE DATABASE, вот его полный синтаксис:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] … create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] …
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name |
Давайте попробуем создать базу данных MySQL с именем test1. Я вам не рекомендую копировать код, лучше набирайте его сами, так все команды запомнятся быстрее. Итак, создаем базу данных с именем test1:
Все, база данных с именем test1 создана, повторное создание базы данных с таким же именем приведет к ошибке: ERROR 1007 (HY000) Can’t create database ‘test1’; database exists. По-русски: не могу создать базу данных с именем ‘test1’; база данных уже существует. Чтобы таких ошибок не возникало, создавайте базы данных MySQL с добавлением конструкции [IF NOT EXISTS] (если не существует), в этом случае ошибки не будет, но будет предупреждение:
CREATE DATABASE IF NOT EXISTS test1;
CREATE DATABASE IF NOT EXISTS test1; |
При создании базы данных MySQL можно указать ее спецификацию: кодировку для всех таблиц базы данных, порядок сортировки и сравнения. Обратите внимание: те же самые данные можно указывать и для каждой таблицы MySQL, если этого не сделать, таблица будет обладать теми же характеристиками, что и вся база данных.
Создадим базу данных MySQL с именем test2, кодировкой utf8 и сравнением utf8_general_ci:
CREATE DATABASE IF NOT EXISTS test2 CHARACTER SET = utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS test2
CHARACTER SET = utf8
COLLATE utf8_general_ci; |
На заметку. Если вы создаете сайт с использованием CMS (установка Drupal, установка Joomla, установка WordPress), то при ее установки потребуется вручную создать базу данных, конечно, база данных будет заполнена автоматически установочным скриптом, но ее нужно уметь создать. Здесь вы сможете ознакомиться с архитектурой базы данных WordPress сайта.
Конструкция CHARACTE SET определяет кодировку созданной базы данных MySQL (в какой кодировки данные будут храниться). COLLATE определяет порядок сравнения данных в базе данных (с учетом регистра символов или нет и прочее). Думаю, с вопросом создания базы данных MySQL мы разобрались, давайте разберемся с кодировкой базы данных, этот вопрос актуален и для каждой таблицы в отдельности.
Я уже говорил, что кодировку для таблицы можно задавать точно так же, как и для всей базы данных, если кодировка не задана явно, то она будет точно такой же, как и кодировка всей базы данных MySQL. Если вы указали кодировку базы данных, но не задали порядок сравнения, то он будет использован по умолчанию. Если задан порядок сравнения, то он определяет кодировку все сущности: либо таблицы, либо базы данных. Обратите внимание: порядок сортировки (COLLATE), должен быть допустимым для текущей кодировки (CHARACTER SET).
Вопрос о том, как создать базу данных MySQL можно считать подробно рассмотренным, если все-таки возникли какие-то вопросы о создание базы данных, задавайте их в комментариях. Если вы хотите помочь данному ресурсу развиваться, воспользуйтесь блоком социальных кнопок на этой странице, буду очень благодарен.
zametkinapolyah.ru
MySQL: Создать Базу Данных — Командная Строка
Из этой небольшой статьи вы узнаете, как создать базу данных в MySQL из командной строки в Linux.
Я покажу основной синтаксис команды CREATE DATABASE
в MySQL для создания простой базы данных с кодировкой по умолчанию.
Также я покажу, как создать пользователя в MySQL, задать ему пароль, дать все права на новосозданную базу данных и разрешить подключаться к ней только локально.
Дельный Совет: У вас есть бэкап? Он ОБЯЗАН у вас быть! Бэкапте базы данных MySQL из командной строки! Это действительно просто! Читать далее →
Подключитесь к MySQL серверу из командной строки под пользователем root
:
$ mysql -u root -p
Создать Базу Данных MySQL
Используйте следующий синтаксис для создания базы данных в MySQL:
mysql> CREATE DATABASE имя_базы;
Создайте нового пользователя:
mysql> GRANT ALL PRIVILEGES ON имя_базы.* TO имя_пользователя@localhost IDENTIFIED BY 'пароль_пользователя';С помощью последней команды мы дали пользователю
имя_пользователя
все права на только что созданную базу данных имя_базы
и установили ему пароль пароль_пользователя
.Указывая localhost
после символа @
мы разрешаем пользователю подключаться к базе данных только с самого сервера на котором установлен MySQL.
Если вы хотите разрешать пользователю подключаться к базе данных удаленно, вы можете поменять localhost
на IP-адрес или имя хоста.
Дельный Совет: Узнайте, как легко получить список пользователей MySQL, посмотреть их пароли и привилегии из командной строки! Читать далее →
Теперь под этим пользователем вы можете подключиться к MySQL серверу из командной строки:
$ mysql -u имя_пользователя -p
Чтобы показать все базы данных доступные для текущего пользователя, выполните:
mysql> SHOW DATABASES;
Чтобы открыть новосозданную базу данных в MySQL, выполните:
mysql> USE имя_базы;
Вы также можете сразу открыть нужную базу данных при подключении из командной строки, явно указав ее имя:
$ mysql -u имя_пользователя -p -В имя_базы
Чтобы явно указать IP-адрес или имя MySQL сервера, выполните:
$ mysql -u имя_пользователя -p -h имя_хоста
www.shellhacks.com
Визуальное проектирование базы данных в MySQL Workbench / Habr
Цель данного поста — помочь начинающему разработчику быстро освоится и спроектировать простенькую базу с помощью инструмента для визуального проектирования баз данных MySQL Workbench от компании Oracle и получить её ER-модель и SQL-дамп.
Ну что же, меньше слов да больше смысла! Внешний вид окна программы, раздел «Моделирование данных» выглядит так:
Для того, чтобы открыть существующую модель надо нажать на ссылку: Open Existing EER Model, для создания новой модели – выбрать параметр: Create New EER Model, чтобы создать модель «сущность-связь» из существующей базы данных – нажать на параметр: Create EER Model From Existing Database, а для создания EER модели из SQL скрипта нужно выбрать: Create EER Model From SQL Script.
Для создания новой модели, воспользуемся ссылкой Create New EER Model, после нажатия на неё отобразится окно с параметрами:
Для начала необходимо создать таблицы, для этого нажмём на кнопку Add Table, появится следующая форма:
Сначала создадим таблицу users, которая будет хранить данные о пользователях информационной системы, в поле table Name впишем имя таблицы, в разделе формы Columns создадим поля таблицы:
— Первое поле id будет содержать уникальный номер пользователя, зададим ему свойства: Auto Increment, Not Null, Primary key и Unique, в разделе Data type выберем целочисленный тип integer.
— Второе поле fio, где будет хранится Ф.И.О. пользователя, установим полю свойства: Not Null, Primary key,, в разделе Data type выберем строковый тип VARCHAR и зададим количество символов в 255.
— Третье поле login, будет содержать логин пользователя, оно должно быть уникальным, как и поле id, поэтому установим ему свойство Unique и зададим количество символов в 255.
— Следующие поля: password содержащее пароль, e_mail содержащее адрес электронной почты и поле type содержащее тип пользователя будут без особых свойств, со строковым типом VARCHAR длинной в 255 символов, за исключением последнего поля type которому хватит с 45 символов.
После проделанных манипуляций форма с именем таблицы users будет выглядеть так:
На диаграмме появится таблица users c полями и индексами:
Аналогичным способом создадим таблицу settings с настройками доступа к базе данных ИС, содержащую поля id, host для указания имени хоста (адреса сервера), db – имени базы данных, user и password с именем пользователя и паролем, для установки ИС на удалённый сервер.
Далее по уже известному методу создадим таблицу shops которая будет хранить данные о магазинах в полях: id типа integer – ключевое, ненулевое, уникальное с автоинкрементом, поле name хранящее название магазина, поле address – его физический адрес, поле tel – телефон магазина, site – интернет сайт магазина и поле email с электронным адресом магазина.
Затем создадим таблицу products хранящую данные о продукции магазина в полях: id типа integer – ключевое, ненулевое, уникальное с автоинкрементом, поле name хранящее название магазина, ключевое, ненулевое поле целочисленного типа shop_id хранящее номер магазина, поле type_id с информацией о номере товара из таблицы видов продукции. Поле brand – брэнд изготовителя длинной в 255 символов, поле model – с моделью товара, поле data – с данными и характеристиками товара типа Tinytext, поле img с полным адресом до изображения товара длинной в 255 символов, и поля price с ценой товара и warranty с информацией о сроках гарантии на товар длинной в 45 символов.
Созданные нами таблицы settings, shops и products выглядят следующим образом:
Далее нам понадобится таблица хранящая тип продуктов product_type, она состоит из уникального, ненулевого, ключевого поля id с автоинкрементом целочисленного типа, и уникального поля name длинной в 255 символов, которое содержит название вида продуктов.
Вид таблицы таков:
Последние две таблицы это orders и deliveries, первая содержит информацию о заказах клиентов, а последняя данные о доставке продукции.
Поля таблицы orders: id ключевое, ненулевое, уникальное поле целочисленного типа с автоинкрементом, поле shop_id содержащее номер магазина – ключевое, ненулевое целочисленного типа, поле product_id хранящее номер продукта – ключевое, ненулевое целочисленного типа, поле fio с номером пользователя совершившего заказ — ключевое, ненулевое целочисленного типа, поле date c датой заказа – типа DATE, поле quantity с количеством заказанных товаров – целочисленного типа, поле tel с номером телефона заказчика – строкового типа длинной в 255 символов и поле confirm содержащее информацию о подтверждении заказа – логического типа.
Поля таблицы deliveries: order_id с номером заказа — ключевое, ненулевое, уникальное поле целочисленного типа с автоинкрементом, поле поле fio с номером пользователя совершившего заказ — ключевое, ненулевое целочисленного типа, поле address хранящее адрес доставки товара указанный клиентом – строкового типа длинной в 255 символов, поле time хранящее желаемое время доставки товара – строкового типа длинной в 255 символов, поле date с датой совершения заказа клиентом – типа DATE и поле логического типа confirm хранящее информацию о доставке товара.
Таблицы orders и deliveries выглядят так:
Связи таблиц
Мы создали базу данных, состоящую из семи таблиц, теперь необходимо связать таблицы, мы уже создали ключевые поля целочисленного типа, они и станут основой для связывания.
Для того чтобы связать две таблицы к примеру products и product_type, необходимо дважды щёлкнуть левой кнопкой мыши на диаграмму с таблицей products и выбрать вкладку Foreign keys (внешние ключи), далее в поле Foreign key name ввести уникальное имя внешнего ключа, дважды щёлкнуть по вкладке Referenced table и выбрать таблицу product_type, затем в форме расположенной правее выбрать ссылающееся поле type_id и выбрать в всплывающем списке поле id.
Таким образом, оба поля таблицы оказываются связанны, затем нужно задать тип отношений связи между таблицами, откроем окно, кликнув на появившуюся связь между таблицами, и выберем вкладку Foreign Key и в разделе Cardinality выберем тип связи один ко многим, и закроем окно. На диаграмме отобразится связь таблиц:
Аналогичным образом связываем все ключевые поля в таблицах, чтобы они были логически взаимосвязаны, далее нам необходимо убедится, что спроектированная база данных соответствует третьей нормальной форме.
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение. Что же касается различных таблиц, то они могут не быть правильными представлениями отношений и, соответственно, могут не находиться в первой нормальной форме. Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый не ключевой атрибут неприводимо (функционально полно) зависит от её потенциального ключа. База данных будет находиться в третьей нормальной форме, если она приведена ко второй нормальной форме и каждый не ключевой столбец независим друг от друга.
Таким образом наша база находится в третьей нормальной форме, т.к. каждый не ключевой столбец независим друг от друга. Это наглядно видно на диаграмме нашей базы данных:
Большинство таблиц находятся в отношении один-ко-многим, за исключением таблиц deliveries и orders находящихся в отношении одни-к-одному, т.к. доставлен, может быть только одни заказ, т.е. у одного заказа только одна доставка. Остальные связи наглядно указаны выше.
Теперь загрузим нашу базу данных на сервер. Для этого создадим новое подключение к базе данных, щёлкнув по ссылке New connection в стартовом окне программы:
Затем заполним поля в открывшимся окне:
Укажем имя соединения в поле Connection Name, выберем метод соединения в списке Connection Method, зададим имя хоста и порт во вкладке Parameters, укажем имя пользователя и пароль если он есть и нажмём на кнопку ОК. Затем откроем вкладку EER Diagram, в панели выберем пункт Database и нажмём на параметр Forward Engineer:
После того как появится окно, нажимаем на кнопку “Next”, выбираем параметр Export MySQL Table Objects и нажимаем на кнопку “Next”:
После нажатия кнопки появится вкладка с SQL кодом, можно сохранить его нажав кнопку “Save to file” если это необходимо, а затем нажать на кнопку “Next”. Появится окно с параметрами соединения:
Проверяем, верны ли параметры подключения и нажимаем на кнопку “Execute”, если в SQL коде не содержится ошибок, то после исполнения кода мы увидим окно со списком таблиц, иначе выведется сообщение об ошибке. Теперь наша база загружена на сервер.
Благодарю за внимание, скачать саму программу можно здесь.
UPD:
Некоторых хабравчан интересовала возможность отображения линий связей таблиц в режиме поле-к-полюпо совету одного из пользователей я приведу небольшое пояснение о том как изменить вид связей и таблиц, для этого необходимо выбрать следующий параметр в разделе меню Relationship Notation:После этого связи таблиц примут вид:
Также есть возможность изменить вид таблиц, для этого нужно поставить галочку в вышеуказанном разделе меню и в нижеследующем Object Notation:
Вот так выглядит таблица на диаграмме приведенная к стандарту IDEF1X:
Благодарю за дельные комментарии!
habr.com
Создаем Базу Данных в MySQL из командной строки. |
Последнее изменение: 29.08.2019
Сегодня рассмотрим, как создать базу данных в MySQL из командной строки в Linux.
В качестве подопытного будем использовать Ubuntu Server 18.04 с установленным LNMP
Я покажу основной синтаксис команды CREATE DATABASE
в MySQL для создания простой базы данных с кодировкой по умолчанию.
Также я покажу, как создать пользователя в MySQL, задать ему пароль, дать все права на новосозданную базу данных и разрешить подключаться к ней только локально.
Подключитесь к MySQL серверу из командной строки под пользователем root
:
sudo mysql -u root -p
Создать Базу Данных MySQL
Используйте следующий синтаксис для создания базы данных в MySQL:
mysql> CREATE DATABASE имя_базы;
Создайте нового пользователя:
mysql> GRANT ALL PRIVILEGES ON имя_базы.* TO имя_пользователя@localhost IDENTIFIED BY 'пароль_пользователя';
С помощью последней команды мы дали пользователю все права на только что созданную базу данных и установили ему пароль.
Указывая localhost
после символа @
мы разрешаем пользователю подключаться к базе данных только с самого сервера на котором установлен MySQL.
Если вы хотите разрешать пользователю подключаться к базе данных удаленно, вы можете поменять localhost
на IP-адрес или имя хоста.
Теперь под этим пользователем вы можете подключиться к MySQL серверу из командной строки:
sudo mysql -u имя_пользователя -p
Чтобы показать все базы данных доступные для текущего пользователя, выполните:
mysql> SHOW DATABASES;
Чтобы открыть новосозданную базу данных в MySQL, выполните:
mysql> USE имя_базы;
Вы также можете сразу открыть нужную базу данных при подключении из командной строки, явно указав ее имя:
sudo mysql -u имя_пользователя -p -В имя_базы
Чтобы явно указать IP-адрес или имя MySQL сервера, выполните:
sudo mysql -u имя_пользователя -p -h имя_хостаЕсли есть вопросы, то пишем в комментариях.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
obu4alka.ru
Создание пользователя MySQL | Losst
После того, как вы установили и настроили MySQL, вам необходимо создать базы данных, таблицы и пользователей. Конечно, вы можете сделать это от имени суперпользователя root, но это не безопасно. Да и большинство приложений не позволят вам такой вольности, например, Phpmyadmin не даст авториrзоваться от имени суперпользователя.
Поэтому для каждой базы данных нужно создавать отдельных пользователей и настраивать для них права. В этой статье мы рассмотрим, как выполняется создание пользователя mysql, а также настройка его прав.
Содержание статьи:
Создание пользователя mysql
1. Как создать пользователя MySQL
Предположим, что база данных уже создана и называется test_database. Нам нужно открыть клиент базы данных. Для этого наберите в терминале:
mysql -u root -p
Теперь можно работать. Для создания пользователя используется команда CREATE USER, её синтаксис такой:
CREATE USER ‘имя_пользователя’@’хост’ IDENTIFIED BY ‘пароль’;
Кроме имени пользователя, здесь нужно задать хост, с которого может авторизоваться этот пользователь. Здесь может быть доменное имя, IP-адрес, адрес подсети или знак «%», который означает все возможные хосты. Это очень удобно, потому что вы можете создать пользователя, к которому можно будет подключится только локально или настроить отдельно права для локального или удалённого пользователя.
Например, давайте создадим локального пользователя test_user с паролем password:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'password';
Или можно создать пользователя, который будет доступен со всех хостов:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'password';
Смотрим наших пользователей:
SELECT User,Host FROM mysql.user;
Все пользователи созданы.
2. Права пользователя MySQL
Создать пользователя — это ещё далеко не всё, теперь нужно назначить ему права. Для этого используется команда GRAT. У неё такой синтаксис:
GRANT привилегии ON база_данных . таблица TO ‘имя_пользователя’@’хост’;
Здесь можем дать определённые привилегии для опредёленного пользователя к базе данных или таблице. Если нужно дать права для всех баз данных или таблиц, используйте вместо названия звездочку — «*». Вот основные права пользователя MySQL, которые вы можете использовать:
- ALL PRIVILEGES — все, кроме GRANT;
- USAGE PRIVILEGES — никаких привилегий;
- SELECT — делать выборки из таблиц;
- INSERT — вставлять данные в таблицу;
- UPDATE — обновлять данные в таблице;
- DELETE — удалять данные из таблицы;
- FILE — разрешает читать файлы на сервере;
- CREATE — создавать таблицы или базы данных;
- ALTER — изменять структуру таблиц;
- INDEX — создавать индексы для таблиц;
- DROP — удалять таблицы;
- EVENT — обработка событий;
- TRIGGER — создание триггеров.
Также доступны такие привилегии администрирования баз данных:
- GRANT — изменять права пользователей;
- SUPER — суперпользователь;
- PROCESS — получение информации о состоянии MySQL;
- RELOAD — позволяет перезагружать таблицы привилегий;
- SHUTDOWN — позволяет отключать или перезапускать базу данных;
- SHOW DATABASES — просмотр списка баз данных;
- LOCK TABLES — блокирование таблиц при использовании SELECT;
- REFERENCES — создание внешних ключей для связывания таблиц;
- CREATE USER — создание пользователей;
Чтобы дать права пользователю MySQL на обновление и добавление записей для базы данных test_database, выполните:
GRANT SELECT,UPDATE,INSERT ON test_database . * TO 'test_user'@'localhost';
Дальше дадим этому же пользователю все права над этой базой данных:
GRANT ALL PRIVILEGES ON test_database . * TO 'test_user'@'localhost';
Теперь посмотрим привилегии нашего пользователя:
SHOW GRANTS FOR 'test_user'@'localhost';
Мы видим, что для всех баз данных и таблиц привелегий нет, но зато есть все привилегии для базы данных test_database. Вот так это работает. После обновления прав пользователя необходимо обновить таблицу прав пользователей MySQL в памяти. Для этого выполните:
FLUSH PRIVILEGES;
3. Удаление прав пользователя MySQL
Чтобы отозвать права у пользователя MySQL, используйте команду REVOKE вместо GRANT. Её синтаксис похож на GRANT:
REVOKE привилегии ON база_данных . таблица FROM ‘имя_пользователя’@’хост’;
Например, заберём все права на базу данных test_database у нашего пользователя:
REVOKE ALL PRIVILEGES ON test_database . * FROM 'test_user'@'localhost';
4. Создание суперпользователя MySQL
Если вам необходимо создать пользователя со всеми правами MySQL на замену для root, то можно использовать такую конструкцию:
GRANT ALL PRIVILEGES ON * . * TO 'test_user'@'localhost';
Даём все привилегии для пользователя test_user над всеми базами данными и всеми таблицами. Но наш пользователь не сможет давать права другим пользователям. Чтобы это исправить, нужно дать ему привилегию GRANT, а для этого используется такая команда:
GRANT ALL PRIVILEGES ON * . * TO 'test_user'@'localhost' WITH GRANT OPTION;
Теперь этот пользователь является суперпользователем для MySQL и, авторизовавшись от его имени в PhpMyAdmin, вы можете делать всё то же самое, что и с помощью root.
Выводы
В этой статье мы рассмотрели, как создать пользователя MySQL в Ubuntu или в любом другом дистрибутиве. Работа в командной строке с MySQL может показаться довольно сложной. Но сделать это надо всего один раз -после установки базы данных. А дальше можно выполнять все действия в Phpmyadmin.
losst.ru
Работа с базой данных MySQL
Перечень статей раздела Работа с БД MySQL:
2017-06-21Создаем базу данных MySQL
- Зачем нужна база данных
- Что из себя представляет база данных MySQL
- Создаем базу данных на локальном веб-сервере Denwer
- Создаем базу данных на хостинге
Здравствуйте уважаемый посетитель!
Прежде чем приступить к очередной теме создания сайта, хочу извиниться за задержку в написании статей. Но, как говорится, причина уважительная, так как связанно это было с работой по другим важным проектам. Надеюсь, в дальнейшем, дела насущные позволят мне рассмотреть все основные заявленные вопросы по развитию сайта в штатном режиме, с периодичностью 1-2 статьи в неделю.
Этой статьей начинается следующая часть сборника «Сделай сайт с нуля своими руками», которая в основном будет направлена на развитие и оптимизацию сайта, наполнение его контентом и необходимым функционалом.
А для того, чтобы в дальнейшем иметь возможность полноценно развивать сайт нам будет не обойтись без рассмотрения такого важного вопроса, как работа с базой данных MySQL (в дальнейшем для обозначения базы данных MySQL будет также встречаться аббревиатура «БД»).
В данной статье мы создадим базу данных на локальном веб-сервере Denwer и на хостинге, на котором размещен наш сайт.
Дальше, по ходу работ, будем формировать необходимые таблицы и скрипты, которые будут выполнять функцию хранения и обработки данных, получаемых при работе определенных блоков сайта.
2017-06-27Подключаем базу данных MySQL с использованием процедурного и объектно-ориентированного стиля MySQLi
- Общие вопросы по подключению к БД
- Отличие в подключении к БД на локальном веб-сервере и на хостинге
- Подключение к базе данных с использованием процедурного интерфейса
- Подключение к базе данных объектно-ориентированным стилем
- Исходные файлы сайта
Здравствуйте уважаемый посетитель!
Сегодня будем заниматься подключением базы данных MySQL, которую создали в прошлой статье, через PHP с помощью современного модуля MySQLi. Особенность этого расширения в том, что в отличие от устаревшего MySQL, оно поддерживается всеми актуальными версиями PHP, включая последнюю 7.0.
Причем делать это будем двумя вариантами, используя, как привычной процедурный интерфейс (наподобие функций, которые использовались в старом расширении MySQL), так и объектно-ориентированный стиль взаимодействия с MySQL.
Оба эти варината рабочие, а каким пользоваться, может каждый выбрать для себя самостоятельно, кому какой будет удобнее…
2017-07-02Создаем таблицы MySQL c помощью phpMyAdmin, SQL-команд и в PHP
- Определение основных параметров создаваемой таблицы
- Создание таблицы с помощью интерфейса phpMyAdmin
- Создание таблицы с помощью SQL-запросов
- Создание таблицы MySQL в PHP
- Исходные файлы сайта
Здравствуйте уважаемый посетитель!
В прошлых статьях мы создали и подключили базу данных MySQL. Но для того чтобы с ней можно было реально работать, необходимо создать таблицы для записи, извлечения и обновления хранящейся в них информации.
В данной статье будут рассмотрены три возможных способа создания таблиц MySQL, а именно: с использованием интерфейса phpMyAdmin, c помощью SQL-запросов, а также используя модуль MySQLi PHP.
Конечно, нет необходимости постоянно использовать все спосбы, каждый сможет выбирать для себя то, что ему удобнее. Но, данная информация о разных возможностях, думаю, для многих будет интересна.
В связи с чем, я и решил более полно отразить данную тему. Тем более, что сейчас в интернете по этому вопросу часто можно встретить много устаревшей информации, либо большое количество перепечаток из разной справочной литературы.
При этом следует отметить, что наиболее часто из перечисленных способов используется первые два — с использованием интерфейса phpMyAdmin и c помощью SQL-запросов. Причем первый из них, на мой взгляд, более удобен для небольших таблиц. А использование SQL-запросов, наверное, можно оставить для создания более сложных, с большим количеством полей.
Третий способ — через PHP, встречается значительно реже, в основном, при необходимости создания таблиц программно, при выполнении каких-либо алгоритмов.
Также следует учесть, что порядок создания таблиц MySQL на локальном веб-сервере Denwer аналогичен и, практически, ничем не отличается от тех процедур, которые выполняются на хостинге. Поэтому, все выполняемые здесь действия будут проводиться на локальном веб-сервере. Повторения же подобных операций на хостинге рассматриваться не будет.
Наверное, такой значительный объем материала следовало бы разбить на три отдельных статьи. Но, собранная информация по этой теме в одном месте, думаю, будет более удобна для ее использования…
2017-07-10Вводим и копируем данные в БД MySQL с помощью phpMyAdmin
- Ввод данных в таблицу с помощью интерфейса phpMyAdmin
- Создание копии таблицы MySQL на локальном веб-сервера
- Импорт таблицы MySQL в БД хостинга
- Исходные файлы сайта
Здравствуйте уважаемый посетитель!
Сегодня будем вводить данные в таблицы MySQL с использованием интерфейса phpMyAdmin на локальном веб-сервере Denwer самым простым способом, в ручную, выбирая с помощью клавиатуры необходимые поля и записывая в них нужную информацию.
Что же касается ввода данных на хостинге, то в этом случае все действия аналогичны. Поэтому отдельного такого рассмотрения для хостинга не имеет смысла и в статье не предусмотрено.
Вместо этого, мы выполним довольно полезную операцию копирования таблиц MySQL из БД локального веб-сервера в БД хостинга и наоборот. Причем сделаем это наиболее простым способом, используя все то же приложение phpMyAdmin.
Такая процедура довольно удобна для сохранения данных MySQL, так как этим способом можно копировать не только определенные таблицы, но всю базу данных. А при наличии копии сайта на локальном веб-сервере, такая возможность существенно упрощает отладку и техническую поддержку действующего сайта…
rabota-vinete.ru