Mysql установка руководство

  • Главная

  • Инструкции

  • MySQL

  • Как установить MySQL на Windows: пошаговая инструкция

MySQL — это бесплатная реляционная система управления базами данных, разработанная компанией Oracle. Популярность ей принесли доступность, простота и многофункциональность. Разработка множества функций выполнена не только разработчиками ПО, но и пользователями, благодаря исходному коду, который опубликован в свободном доступе. 

В данной статье будет подробно рассказано, как установить MySQL на Windows и произвести ее базовую настройку. В инструкции будет рассмотрена установка программы на ОС Windows 10. 

Чтобы установить MySQL на Windows 10, понадобится компьютер с установленной операционной системой. 

Скачивание дистрибутива

Для начала необходимо установить дистрибутив программы MySQL с официального сайта разработчика. Пользователю будет предложено два варианта загрузки:

  1. Первый вариант — скачать загрузочный файл версии mysql-installer-web-community.msi. Он произведет автоматическую установку всех необходимых компонентов. Важно уточнить, что данный вариант установки предполагает обязательное наличие подключения сервера к интернету.
  2. Второй вариант — скачать загрузочный файл версии mysql-installer-community.msi. Он позволит установить все компоненты СУБД даже при отсутствии интернет-соединения у сервера.

В данной инструкции будем использовать второй вариант загрузки.

Image13

После выбора варианта скачивания программы сервис предложит зарегистрировать веб-аккаунт Oracle либо войти под существующими данными. Этот этап можно пропустить. Для этого нужно нажать на соответствующую ссылку, как показано на картинке ниже.

Image15

Установка MySQL

После успешного скачивания загрузочного файла, его нужно будет запустить. Далее должна открыться программа установки.

В самом начале пользователю будут предложено несколько вариантов установки. Среди них: 

  • Developer Default — вариант по умолчанию. Он подразумевает установку всех необходимых компонентов для разработчика.
  • Server only — установка только сервера СУБД.
  • Client only — установка только клиентской части СУБД.
  • Full — установка всех компонентов скачанного дистрибутива.
  • Custom — установка с возможностью выбора только необходимых пользователю компонентов.

Выбираем полную установку («Full»). Для начинающих пользователей это будет лучший вариант. После выбора нажимаем кнопку «Next».

Image17

Теперь программа установки предложит пользователю установить все необходимые компоненты для работы расширений СУБД. Если у них есть статус Manual, то они никак не будут мешать программе стабильно выполнять задачи. Можно выбрать необходимые из списка компоненты, затем нажать кнопку «Execute» и установить их, либо пропустить данный шаг и нажать кнопку «Next». Если пользователь выбрал второй вариант, то ему будет выведено на экран уведомление об отсутствии некоторых компонентов. Нужно нажать «Yes», чтобы подтвердить свой выбор.

Image20

Следующим шагом будет последовательная установка всех компонентов СУБД. Для этого нажимаем кнопку «Execute».

Image19

Как только все файлы будут успешно загружены, слева от каждого компонента появится зеленая галочка, а статус поменяется на «Complete». Нажимаем «Next».

Далее установочная программа предложит настроить конфигурацию некоторых компонентов. Нажимаем «Next» и переходим к настройке.

Image6

Настройка конфигурации MySQL Server

MySQL Server уже установлен на Windows 10. В первую очередь нужно произвести настройку его конфигурации. В открывшемся окне уже будут выставлены все нужные параметры по умолчанию, поэтому нажимаем «Next».

Image5

После будет предложено выбрать тип аутентификации. Оставим рекомендованный и переходим к следующему этапу.

Image4

В открывшемся окне нужно задать пароль суперпользователя (root). Кроме того, на данном этапе можно добавить других пользователей. Для этого нужно нажать кнопку «Add User» и заполнить необходимые поля:

  • Поле «User Name» — имя пользователя.
  • Поле «Host”» — хост, с которого пользователь будет авторизовываться.
  • Поле «Role» — роль пользователя для работы в СУБД.
  • Поля «Password» и «Confirm Password» — пароль и подтверждение пароля для создаваемого пользователя.

Выполним все необходимые действия.

Image7

Нажимаем «OK» в окне создания пользователя. Он будет создан, а пароль суперпользователю задан. Нажимаем «Next».

Далее установщик предложит запускать MySQL Server как Windows-сервис. Если убрать в данном пункте галочку, то запускать его нужно будет из командной строки. 

По усмотрению пользователя, предложенное имя Windows-сервиса можно оставить либо изменить на иное.

Следующий чекбокс отвечает за запуск службы и сервера одновременно. 

Пункт Run Windows Service предлагает выбрать учетную запись, от которой будет запускаться служба.

Никаких изменений в предложенный установщиком вариант вносить не будем. Перейдем к следующему этапу.

Image2

Нужно применить измененные параметры конфигурации. Для этого нажимаем кнопку «Execute».

Как только все зеленые галочки рядом с пунктами будут выставлены — нажимаем «Finish».

Image12

Теперь статус конфигурации MySQL Server помечен как завершенный. Нажимаем кнопку «Next».

Настройка конфигурации MySQL Router

В открывшемся окне не будем вносить никаких изменений, а просто нажимаем «Finish». Все представленные настройки нужны для распределения нагрузки между программами MySQL в кластере.

Image9

Настройка завершена. Переходим к настройке Samples and Examples.

Настройка конфигурации Samples and Examples

В открывшемся экране нужно будет заполнить ранее заданные логин и пароль для пользователя root и нажать кнопку «Check» для проверки соединения.

Image16

Как видно по картинке, соединение успешно установлено. Нажимаем «Next» и применяем все параметры кнопкой «Execute». Начнется установка необходимых компонентов раздела Samples and Examples на сервер СУБД.

Image11

Как только установка будет завершена — нажимаем «Finish».

Image8

Установка СУБД завершена. Для её дальнейшей работы и настройки запустим MySQL Workbench. Для этого установим галочку в соответствующем чекбоксе и нажмем «Finish».

Image18

Проверка работоспособности MySQL

После завершения загрузки откроется установленный на Windows 10 MySQL Workbench. В стартовом окне программы содержится одно подключение от пользователя root. Кликаем на него и вводим пароль, заданный ранее.

Image3

После этого выполнится подключение к серверу и откроется рабочая область среды MySQL Workbench.

Image14

Теперь откроем вкладку «Schemas» в левой части рабочей области и развернем список таблиц в схеме «sakila». Здесь будут представлены тестовые данные, которые мы устанавливали ранее.

Image1

Попробуем сделать первый запрос SELECT, который представит все данные из таблицы actor. Он будет выглядеть следующим образом:

SELECT *FROM sakila.actor

Результат запроса будет представлен на картинке ниже.

Image10

Заключение

В данной статье была представлена инструкция по правильной установке MySQL на Windows 10. Также, во время нее была произведена настройка конфигураций MySQL Server, MySQL Routers и Samples and Examples. Этого будет достаточно для работы с небольшими проектами в MySQL. Для более серьёзных проектов необходимо сделать еще ряд действий, помимо тех, что были представлены в данной статье. В том числе правильно настроить конфигурацию MySQL Routers для работы кластерной СУБД.

Время на прочтение
6 мин

Количество просмотров 11K

MySQL на сегодняшний день является одной из наиболее распространенных в мире. Достаточно сказать, что по рейтингам 2021 года данная СУБД лишь немного уступала Oracle.

В серии из трех статей мы рассмотрим основные моменты связанные с редакциями MySQL, обсудим архитектуру, процесс установки и базовой настройки. Во второй статье мы займемся созданием репликации БД. И в третьей части мы поговорим о различных способах резервного копирования данных в БД.

Начнем с рассмотрения редакций СУБД MySQL.

Ванильная сборка

Классическая версия MySQL от Oracle это свободная реляционная система управления базами данных. На сегодняшний день разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Такая несколько сложная «пищевая цепочка» не помешала данной БД получить широкое распространение. Далее, когда мы будем рассматривать практические примеры развертывания, будет использоваться именно классическая редакция MySQL.

MariaDB

СУБД MariaDB — ответвление MySQL, разрабатываемое сообществом под лицензией GNU GPL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation. При этом СУБД MariaDB совместима с MySQL до версии 5.6.

Движки MySQL

База данных может работать с несколькими типами движков (engines). В таблице ниже приведены основные характеристики каждого из них.

Name

Vendor

License

Transactional

Under active development

MySQL versions

MariaDB versions

Archive

Oracle

GPL

No

Yes

5.0 — present

5.1 — present

Aria

MariaDB

GPL

No

Yes

None

5.1 — present

Berkeley DB

Oracle

AGPLv3

Yes

No

? — 5.0

None

BLACKHOLE

Oracle

GPL

No

Yes

5.0 — present

5.1 — present

CONNECT

MariaDB

GPL

No

Yes

None

10.0 — present

CSV

Oracle

GPL

No

Yes

5.0 — present

5.1 — present

Falcon

Oracle

GPL

Yes

No

?

None

Federated

Oracle

GPL

?

No

5.0 — present

?

FederatedX

MariaDB

GPL

Yes

No

None

? — present

ColumnStore (formerly InfiniDB)

Calpont

GPL

Yes

Yes

None

10.5.4 — present

InnoDB

Oracle

GPL

Yes

Yes

3.23 — present

5.1 — present

MEMORY

Oracle

GPL

No

Yes

3.23 — present

5.1 — present

Mroonga

Groonga Project

GPL

No

Yes

None

10.0 — present

MyISAM

Oracle

GPL

No

No

3.23 — present

5.1 — present

MyRocks

Facebook

GPLv2

Yes

Yes

None

10.2 — present

NDB

Oracle

GPLv2

Yes

Yes

?

None

OQGRAPH

Oracle

GPLv2

No

No

None

5.2 — present

S3

MariaDB

GPL

No

Yes

None

10.5 — present

SEQUENCE

MariaDB

GPL

No

Yes

None

10.0 — present

Sphinx

Sphinx Technologies Inc.

GPL

No

No

None

5.2 — present

SPIDER

Kentoku Shiba

GPL

Yes

Yes

None

10.0 — present

TempTable

Oracle

GPL

No

Yes

8.0 — present

None

TokuDB

Percona

Modified GPL

Yes

No

None

5.5 — present

XtraDB

Percona

GPL

Yes

Yes

None

5.1 — 10.1

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

MyISAM

MyISAM это базовый тип хранилища MySQL. Однако, в нем отсутствуют блокировки на строки и нет транзакций. Как можно понять из названия, движок основывается на принципах ISAM и обладает в сравнении с ним рядом полезных дополнений. Так, он имеет возможности по сжатию данных, по созданию полнотекстовых индексов. Но при этом СУБД не является устойчивой к сбоям и не выполняет требования ACID.

Поддерживается с версий MySQL 3.x, до версий MySQL 5.5, являлась системой хранения по умолчанию.

Немного теории:

ISAM (Indexed Sequential Access Method — индексно-последовательный метод доступа) — способ хранения данных с возможностью быстрого доступа к ним, является наиболее популярным методом индексирования.

ACID (atomicity, consistency, isolation, durability) — набор требований к транзакционной СУБД, обеспечивающий наиболее надёжную и предсказуемую её работу — атомарность, согласованность, изоляцию и устойчивость.

Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

Согласованность – транзакция, достигающая своего нормального завершения и тем самым фиксирующая свои результаты, сохраняет согласованность базы данных.

Изоляция — во время выполнения транзакции параллельные транзакции не должны оказывать влияния на её результат.

Устойчивость — независимо от проблем с питанием или сбоях в оборудовании изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.

InnoDB

InnoDB механизм хранения общего назначения, который обеспечивает высокую надежность и высокую производительность. В MySQL 8.0 механизм хранения по умолчанию. Движок был разработан специально для больших таблиц и показывает наибольшую скорость при работе с БД основанных на дисках.

Преимуществами InnoDB является возможность блокировки на уровне таблиц (читаем, если нет блокировки на запись, пишем, если нет блокировок), поддержка восстановления по времени (binary log), репликаций и конкурентного INSERT.

Установка MySQL

Теперь перейдем непосредственно к установке СУБД. Процесс не должен вызвать особых сложностей:

sudo apt update && sudo apt upgrade -y && sudo apt-get install -y mysql-server

 После установки необходимо выполнить харденинг, то есть указать настройки безопасности:

sudo mysql_secure_installation

• Удалить анонимных пользователей? (Нажмите y | Y для Yes, любую другую клавишу для No): y

• Запретить вход в систему удаленно? (Нажмите y | Y для Yes, любую другую клавишу для No): y

• Удалить тестовую базу данных и получить доступ к ней? (Нажмите y | Y для Yes, любую другую клавишу для No): y

• Обновить таблицы привилегий сейчас? (Нажмите y | Y для Yes, любую другую клавишу для No): y

Далее перезапустим MySQL:

sudo systemctl status mysql

sudo systemctl enable mysql

 Для того, чтобы не вводить каждый раз пароль, мы можем его прописать в домашней папке в файле .my.cnf, имеющем следующую структуру:

 sudo su

cd $HOME

nano .my.cnf

[client]

Password=“Otus321$”

sudo mysql

Архитектура MySQL

Прежде, чем выполнять какие-либо настройки и запросы в СУБД давайте посмотрим, из чего состоит MySQL.

Давайте посмотрим, как это устроено в процессах:

$ ps ax | grep mysqld

$ ps –eLf | grep mysqld

Как мы видим, процесс /usr/sbin/mysqld после успешного запуска порождает множество подпроцессов, которые использует СУБД в своей работе.

На файловом уровне MySQL хранит все данные в каталоге /var/lib/mysql:

$ sudo ls -l /var/lib/mysql

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

Основной конфигурационный файл находится в /etc/mysql/mysql.conf.d/:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Для тестовой инсталляции как правило вносить изменения в этот файл не нужно.

Работаем с таблицами

Далее выполним sudo mysql и перейдем непосредственно в командную среду СУБД.

Структура таблиц после установки имеет следующий вид

> use mysql

> show tables;

Сейчас здесь присутствуют только служебные таблицы, созданные вместе с СУБД.

Создадим свою базу Otus_test:

CREATE DATABASE IF NOT EXISTS Otus_test;

Можно было бы прибегнуть к использованию команды CREATE DATABASE но тогда мы бы получили ошибку, если бы такая база существовала.

Перейдем в созданную БД:

USE Otus_test;

Далее давайте создадим тестовую таблицу в которой будет три столбца: id, name, address. Первичным ключом будет id. В качестве движка явно укажем InnoDB.

CREATE TABLE Otus_table

(

id int NOT NULL AUTO_INCREMENT,

name char(20) NOT NULL,

address char(20) NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB;

Добавим пару записей в таблицу:

INSERT Otus_table(Name, Address) VALUES ('Admin', 'Moscow');

INSERT Otus_table(Name, Address) VALUES ('User', 'N/A');

И сделаем выборку по таблице:

SELECT * FROM Otus_table;

Как видно все записи успешно добавлены в таблицу.

Немного о кодировках

Для промышленного использования СУБД необходимо, чтобы данные в кириллице хранились и отображались корректно. Кодировка (characher set) — набор используемых символов. Представление (collation) — набор правил для сравнения символов в наборе. Символьная кодировка может быть задана для сервера, базы данных, таблицы и колонок в таблице.

В качестве примера настроим кодировку UTF8 в качестве кодировки по-умолчанию. Для этого откроем уже известный нам файл конфигураций mysqld.cnf

nano /etc/mysql/mysql.conf.d/mysqld.cnf

и добавим в него следующее:

[mysqld]

init_connect=‘SET collation_connection = utf8_unicode_ci’

character-set-server = utf8

collation-server = utf8_unicode_ci

[mysql]

default-character-set = utf8

Далее перезапустим БД

systemctl restart mysql

Проверим корректность работы с кириллицей:

INSERT Otus_table(Name, Address) VALUES ('Пользователь', 'N/A');

SELECT * FROM Otus_table;

Как видно, русскоязычные данные корректно сохранены.

Заключение

В этой статье мы рассмотрели основы работы с CУБД MySQL, установку и базовую настройку. Далее мы будем говорить о репликации, построении отказоустойчивых конфигураций, партиционировании и бэкапах.

Так как данный материал подготовлен в рамках запуска курса «Базы данных», хочу порекомендовать всем читателям бесплатный урок по PostgreSQL 15. В рамках урока обсудим новый функционал, деплой в Яндекс Облаке и настройку защищенного подключения. Варианты обновления с предыдущих версий PostgreSQL и их особенности. Подводные камни при обновлении версий.

  • Зарегистрироваться на бесплатный урок 

Введение 

MySQL — реляционная система управления базами данных с открытым исходным. Простота использования и низкий порог входа сделал ее одной из популярных свободно распространяемых систем управления базами данных. MySQL используется как во многих небольших проектах (например, сайтах на WordPress), так и в высоконагруженных корпоративных системах.

В этой статье мы рассмотрим особенности установки MySQL на операционную систему Windows и расскажем о создании пользователей, оптимальной настройке производительности, устранении неполадок и о многом другом.

Подготовка Windows-сервера к установке MySQL

Перед началом подготовки сервера, закажем лицензию для Windows. Без этого создать сервер не получится. Для этого перейдем на экран «Лицензии» и нажмем кнопку «Купить лицензию».

В открывшемся выпадающем меню выберем соответствующий типа лицензии Windows Server 2019 Standard и нажмем кнопку «Оплатить».

После этого в списке лицензий появится лицензия Windows Server 2019 Standard.

Теперь можно приступать к подготовке сервера на базе ОС Windows Server 2019. Для этого в панели управления Selectel перейдем на экран «Облачная платформа» и нажмем на кнопку «Создать сервер»

В качестве образа операционной системы необходимо выбрать образ операционной системы Windows. Для этого нажмем на кнопку «Выбрать другой источник».

В появившемся всплывающем меню выберем готовый образ операционной системы Windows Server 2019 Standard Legacy BIOS и нажмем на кнопку «Выбрать».

В разделе «Серверы» и привязываем к серверу созданную лицензию. После выполненных действий нажимаем на кнопку «Создать».

Через несколько минут сервер перейдет в состояние Active и к нему можно будет подключиться по протоколу RDP.

После создания сервера, ему автоматически присваивается пароль учетной записи Administrator. Под этой учетной записью мы и подключаемся по RDP.

После выполненных подготовительных действий, можно приступать к установке MySQL на Windows-сервер.

Установка MySQL

Перед началом установки скачаем дистрибутив из специального раздела на официальном сайте MySQL. Нажимаем кнопку Go to Download Page.

После перехода на страницу загрузки выбираем опцию Windows (x86, 32-bit), MSI Installer (mysql-installer-community) и нажимаем на кнопку Download. Это на самом деле 64-битная версия СУБД, которая отмечена вендором как 32-битная. В результате мы получим установочный пакет, который затем можно установить на сервер даже без подключения к интернету. 

Также можно скачать версию mysql-installer-web-community, которая представляет собой автоматический установщик и работает при наличии подключения сервера к интернету. На серверах все же не часто можно встретить свободный доступ к интернету. После загрузки дистрибутива приступим к его установке.

Дистрибутив должен появиться в папке с загрузками. Теперь можем его выполнить из контекстного меню и начать установку.

В появившемся представлении выбираем в меню Full для установки всех компонентов СУБД. Для работы с базой данных будет достаточно установить Server Only. В примере мы выбрали Full, т.к. считаем, что для знакомства с базой данных дополнительно понадобится визуальная консоль для управления MySQL Workbench. Также будут полезны примеры данных, с которыми можно сразу начинать работу для эффективного изучения работы СУБД. Также есть возможность выбрать для установки отдельные элементы, выбрав в меню пункт Custom. Нажимаем кнопку Next.

На следующем экране появятся системные требования к установке, выполнив которые, установщик приведет систему в соответствие с ними. Нажмем на кнопку Execute.

После установки дополнительных пакетов нажимаем кнопку Next. Пакеты в статусе Manual являются опциональными и не будут препятствовать нормальной работе СУБД.

На следующем экране будут показаны устанавливаемые компоненты. Проверяем статус готовности к установке каждого компонента и нажимаем на кнопку Execute.  

После установки компонентов убедимся в наличии статуса Complete по каждому из них. После этого нажмем на кнопку Next для перехода к следующему экрану.

На следующем представлении установщик предлагает выполнить конфигурацию компонентов MySQL Server, MySQL Router и Samples and Examples. Нажимаем кнопку Next.

В выпадающем меню Config Type выбираем Development Computer, т.к. установка выполняется в целях демонстрации. Для подключения к базе данных будем использовать протокол TCP/IP. Другие два варианта подключения, помимо TCP/IP, лучше использовать при локальном подключении, т.е. когда приложение установлено на том же сервере, что и база данных. 

Например, метод подключения Shared Memory более производителен, он помогает избегать использование сетевого стека. Заметим, что в производственных средах метод подключения через TCP/IP более предпочтителен, т.к. приложение может иметь тенденцию к росту. Использование этого протокола в распределенной среде упрощает выявление и диагностику нештатного взаимодействия базы данных и приложения. Остальное оставляем по умолчанию и нажимаем кнопку Next.

На следующем экране выбираем тип аутентификации. Воспользуемся рекомендацией вендора, выберем пункт Use Strong Password Encryption for Authentication. Переключение на Use Legacy Authentication Method можем рассматривать только если драйвера приложения не поддерживают подключение к 8 версии MySQL. Нажимаем кнопку Next и переходим к следующему экрану.

На следующем экране установим пароль суперпользователя. Чтобы он был устойчивым к взлому, необходимо использовать символы в верхнем и нижнем регистрах, цифры и спецсимволы. Длина пароля должна быть не менее 8 символов. На этом же экране можно создать и другие пользовательские учетные записи. Созданием новых пользователей займемся после полной установки базы данных MySQL и ее компонентов. Далее нажимаем кнопку Next.

На следующем экране установщик предлагает запускать MySQL Server в виде Windows-сервиса и установить его имя. Это самый приемлемый вариант, т.к. в противном случае запуск MySQL придется выполнять из командной строки. Чекбокс Start the MySQL Server at System Startup оставляем по умолчанию, чтобы база данных запускалась вместе с запуском сервера. В разделе Run Windows Service as… оставим значение Standard System Account, т.к. нет никаких причин запускать сервис MySQL от специализированной учетной записи. В некоторых случаях это бывает необходимо. Нажимаем кнопку Next.

Следующий этап — выполнение конфигурации в автоматическом режиме. Нажимаем кнопку Execute.

После выполнения конфигурации в автоматическом режиме все этапы должны быть помечены зеленой галочкой. Нажимаем кнопку Finish.

Следующий этап — конфигурирование MySQL Router и встроенных примеров. Нажимаем Next.

На экране с конфигурацией MySQL Router оставляем все по умолчанию и нажимаем кнопку Finish. Это функционал позволяет распределять нагрузку между экземплярами MySQL в рамках кластера. В нашем случае при установке единственного экземпляра базы данных этот функционал не имеет смысла.

На следующем экране установщик предложит выполнить конфигурирование примеров — их загрузку в БД. Нажимаем Next.

После этого появится экран с полем для ввода реквизитов доступа к БД и кнопкой для тестирования подключения — Check. Вводим логин и пароль, которые задавали ранее и нажмем кнопку. После подтверждения успешного подключения нажмем на кнопку Next.

На следующем экране будет предложено проверить уже установленных в БД примеров и установить их (запустить скрипты). Нажимаем кнопку Execute.

После успешной проверки и установки нажимаем кнопку Finish.

На следующем экране будет выдано сообщение об успешной установке примеров в БД. Нажимаем кнопку Next.

На этом установка завершена. Перед нажатием на кнопку Finish выберем чекбокс напротив Start MySQL Workbench after setup, что позволит автоматически запустить соответствующую консоль управления.

Консоль запущена и можно переходить к работе с СУБД MySQL Server и ее дополнительной настройке.

Проверка работоспособности MySQL

После подключения к БД MySQL в окне для ввода запроса введем select 1 from dual и в результате в ответе получим 1. В нижней части рабочей области в поле Output зеленой галочкой отмечен успешный статус выполнения запроса.

Также мы можем перейти на вкладку Schemas и обнаружим тестовые данные, которые были загружены в базу данных во время установки. Из контекстного меню выполним запрос в таблицу film_actor. В ответе получим значения столбцов actor_id, film_id и last_update.

Базовая настройка MySQL

После проверки корректности исполнения запросов, добавим новую пользовательскую учетную запись. Для этого на вкладке Administration перейдем в представление Users and Privileges. Нажмем на кнопку Add Account и заполним поля Login Name, Password и Confirm Password. Остальное оставим без изменений.

Еще один важный экран — Options File. Располагается также на вкладке Administration. Здесь можно в графическом интерфейсе изменять переменные, которые задаются в конфигурационном файле my.ini

В MySQL Workbench можно также следить за производительностью базы данных. Отдельные метрики сгруппированы для удобства просмотра. Здесь присутствуют следующие группы: Memory Usage, Hot Spots for I/O, High Cost SQL Statements, Database Schema Statistics, Wait Event Times, InnoDB Statistics и User Resource Use.

Заключение

В статье мы рассмотрели установку и базовую настройку MySQL Server. Этого достаточно для запуска простого проекта, например, блога на WordPress. При необходимости MySQL может поддерживать высоконагруженные проекты за счет возможности работы в режиме кластера высокой доступности. 

Данный документ поможет пользователю в настройке и использовании MySQL.

Начало работы с MySQL

Введение

MySQL — это популярный сервер баз данных, используемый в разных приложениях. SQL означает язык структурированных запросов — (S)tructured (Q)uery (L)anguage, который MySQL использует для коммуникации с другими программами. Сверх того, MySQL имеет свои собственные расширенные функции SQL для того чтобы обеспечить пользователям дополнительный функционал. В этом документе мы рассмотрим как провести первоначальную установку MySQL, настроить базы данных и таблицы, и создать новых пользователей. Давайте начнем с установки.

Установка MySQL

Сначала убедитесь что MySQL установлен на вашу систему. В случае если вам требуется определенная функциональность MySQL, убедитесь, что установлены необходимые USE-флаги, так как они помогут в тонкой настройке инсталляции.

По завершении установки, вы увидите следующее уведомление:

КОД Сообщение einfo MySQL

You might want to run:
"emerge --config =dev-db/mysql-[version]"
if this is a new install.

Так как это новая установка, мы запустим эту команду. Вам надо нажать ENTER по запросу во время конфигурации базы данных MySQL. В процессе конфигурации устанавливается основная база данных MySQL, которая содержит служебную информацию, такую как базы данных, таблицы, пользователи, разрешения и т.д. В процессе конфигурации рекомендуется чтобы вы изменили свой пароль root так быстро, как это возможно. Мы определенно это сделаем, иначе кто-нибудь сможет волей случая появиться и взломать сервер MySQL, настроенный по умолчанию.

root #emerge --config =dev-db/mysql-[version]

 * MySQL DATADIR is /var/lib/mysql
 * Press ENTER to create the mysql database and set proper
 * permissions on it, or Control-C to abort now...
 
   Preparing db table
   Preparing host table
   Preparing user table
   Preparing func table
   Preparing tables_priv table
   Preparing columns_priv table
   Installing all prepared tables
 
   To start mysqld at boot time you have to copy support-files/mysql.server
   to the right place for your system
 
   PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
   To do so, issue the following commands to start the server
   and change the applicable passwords:
 
   /etc/init.d/mysql start
   /usr/bin/mysqladmin -u root -h pegasos password 'new-password'
   /usr/bin/mysqladmin -u root password 'new-password'
   Depending on your configuration, a -p option may be needed
   in the last command. See the manual for more details.

Заметка
Если предыдущая команда не выполнится из-за того, что имя хоста установлено в localhost, измените его на другое имя, например gentoo. Обновите файл /etc/conf.d/hostname и перезапустите /etc/init.d/hostname.

Некоторая нехарактерная для ebuild-файлов информация MySQL удалена отсюда, чтобы содержать этот документ настолько последовательным, насколько возможно.

Важно
Начиная с mysql-4.0.24-r2, пароли вводятся во время этапа конфигурации, что делает пароль root более надежным.

Сценарий конфигурации уже вывел команды, которые нам нужно запустить, чтобы настроить наш пароль, поэтому нам сейчас надо их выполнить.

Если вы используете OpenRC, выполните данную команду:

root #/etc/init.d/mysql start

 * Re-caching dependency info (mtimes differ)...
 * Starting mysqld (/etc/mysql/my.cnf) ...        [ ok ]

Если вы используете systemd, вместо этого используйте следующую команду:

root #systemctl restart mysqld.service

With >=dev-db/mariadb-10.1.18, use:

root #systemctl restart mariadb.service

После этого установите пароль root:

root #/usr/bin/mysqladmin -u root -h localhost password 'new-password'

Теперь вы можете проверить, что пароль root был успешно настроен, попытавшись войти на MySQL-сервер:

user $mysql -u root -h localhost -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 4 to server version: 4.0.25
 
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
 
mysql>

Параметр -u указывает пользователя, который будет выполнять вход. Параметр -h указывает хост. Обычно это будет localhost, если только вы не настраиваете удаленный сервер. И, наконец, -p сообщает клиенту mysql что вы будете вводить пароль для доступа к базе данных. Обратите внимание на приглашение mysql>. Это то место, где вы будете вводить все ваши команды. Теперь, когда мы в командной строке mysql в качестве пользователя root, мы можем начать настраивать нашу базу данных.

Важно
Установка mysql по умолчанию приемлема для систем разработки. Для более безопасных значений по умолчанию можно запустить /usr/bin/mysql_secure_installation

Настройка Базы Данных

Создание Базы Данных

Мы вошли и приглашение mysql показано на экране. Сначала, давайте рассмотрим базы данных, которые у нас имеются в настоящий момент. Чтобы это сделать, мы используем команду SHOW DATABASES.

mysql>SHOW DATABASES;

+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.09 sec)

Важно
Пожалуйста, запомните что команды MySQL должны оканчиваться точкой с запятой — ;

Вопреки тому факту, что тестовая база данных уже создана, мы собираемся создать нашу собственную. Базы данных создаются с использованием команды CREATE DATABASE. Мы создадим одну из них под названием gentoo.

mysql>CREATE DATABASE gentoo;

Query OK, 1 row affected (0.08 sec)

Ответ позволяет нам узнать, что команда была выполнена без ошибок. В этом случае, одна строка была изменена. Это является отсылкой к основной базе данных mysql, которая содержит список всех баз данных. Вам не нужно сильно беспокоиться о второстепенных деталях. Последнее число является характеристикой того, насколько быстро был выполнен запрос. Мы можем проверить, что база данных была создана, запустив команду SHOW DATABASES снова.

mysql>SHOW DATABASES;

+----------+
| Database |
+----------+
| gentoo   |
| mysql    |
| test     |
+----------+
3 rows in set (0.00 sec)

В самом деле, наша база данных была создана. Для того чтобы работать с созданием таблиц для нашей новой базы данных gentoo, нам надо выбрать ее в качестве текущей базы данных. Чтобы это сделать, мы используем команду USE. Команда USE принимает имя базы данных, которую вы хотите использовать в качестве текущей. Другой возможностью является ее установка в командной строке после параметра -D. Давайте продолжим и переключимся к базе данных gentoo.

mysql>USE gentoo;

Database changed

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

Работа с таблицами в MySQL

Создание таблицы

В структуру MySQL входят базы данных, таблицы, записи, и поля. Базы данных объединяют таблицы, таблицы объединяют записи, записи объединяют поля, которые содержат действительную информацию. Такая структура позволяет пользователям выбирать как они хотят обращаться к своей информации. На данный момент, мы разобрались с базами данных, теперь давайте поработаем с таблицами. Во-первых, таблицы могут быть перечислены, подобно базам данных, с использованием команды SHOW TABLES. Сейчас, в базе данных gentoo не имеется таблиц, как и показывает нам следующая команда:

mysql>SHOW TABLES;

Empty set (0.00 sec)

Это означает нам надо создать какие-либо таблицы. Чтобы это сделать, мы используем команду CREATE TABLE. Однако, эта команда достаточно отличается от простой команды CREATE DATABASE тем что принимает список аргументов. Формат команды следует ниже:

КОД Синтаксис CREATE TABLE

CREATE TABLE [table_name] ([field_name] [field_data_type]([size]));

table_name — это имя таблицы, которую мы хотим создать. В данном случае, давайте создадим таблицу с именем developers . Эта таблица будет хранить имя разработчика, email адрес и его должность.

field_name будет хранить имя поля. В этом случае мы имеем три требуемых имени: имя разработчика, email адрес, и должность.

field_data_type — это то, какой тип информации будет сохранен. Различные доступные форматы могут быть найдены по адресу MySQL Column Types Page . Для наших целей, мы будем использовать тип данных VARCHAR для всех наших полей. VARCHAR — это один из простейших типов данных, когда дело касается работы со строками.

size — это то, как много данных будет хранить одно поле. В нашем случае, мы будем использовать 128. Это означает, что поле будет иметь данные типа VARCHAR, которые занимают 128 байт. В настоящий момент, вы можете спокойно думать об этом как о 128 символах, хотя существует более техническое объяснение, которое вам предоставит сайт, указанный выше. Теперь, когда мы знаем как мы создадим таблицу, давайте это сделаем.

mysql>CREATE TABLE developers ( name VARCHAR(128), email VARCHAR(128), job VARCHAR(128));

Query OK, 0 rows affected (0.11 sec)

Похоже, наша таблица была успешно создана. Давайте проверим это командой SHOW TABLES:

mysql>SHOW TABLES;

+------------------+
| Tables_in_gentoo |
+------------------+
| developers       |
+------------------+
1 row in set (0.00 sec)

Да, наша таблица существует. Однако, она, по-видимому, не имеет никакой информации о типах полей, которые мы создали. Для этого, мы используем команду DESCRIBE (или, кратко, DESC), которая принимает имя таблицы в качестве своих аргументов. Давайте посмотрим что она нам даст для нашей таблицы developers.

mysql>DESCRIBE developers;

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| name  | varchar(128) | YES  |     | NULL    |       |
| email | varchar(128) | YES  |     | NULL    |       |
| job   | varchar(128) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Показаны разные поля и их типы. Также показано несколько дополнительных атрибутов, которые находятся за рамками данного руководства. Пожалуйста, обратитесь за подробностями к Справочному Руководству MySQL . Теперь у нас есть таблица для работы с ней. Давайте продолжим и заполним ее.

Заполнение Базы Данных MySQL

Мы заполним таблицу (или добавим в нее данные), используя команду INSERT. Подобно команде CREATE TABLE, она также имеет особый формат:

КОД Синтаксис INSERT

INSERT INTO table (col1, col2, ...) VALUES('value1', 'value2', ...);

Эта команда используется для вставки записи в таблицу. table содержит таблицу MySQL, в которую мы хотим ввести информацию. Имя таблицы может сопровождаться списком столбцов для вставки данных, VALUES() хранит значения, которые вы хотите вставить в таблицу. Вы можете опустить список столбцов, если вы вставляете значение в каждый из них и если Вы пишете значения в том же порядке, в котором определены столбцы. В данном случае, мы хотим вставить данные в таблицу developers. Давайте добавим примеры записей:

mysql>INSERT INTO developers VALUES('Joe Smith', 'joesmith@gentoo.org', 'toolchain');

Query OK, 1 row affected (0.06 sec)
## (Если вы не знаете порядок столбцов в таблице или хотите вставить неполную запись)
mysql> INSERT INTO developers (job, name) VALUES('outsourced', 'Jane Doe');
Query OK, 1 row affected (0.01 sec)

В соответствии с полученным результатом, кажется, запись была вставлена правильно. Что если мы хотим ввести больше, чем просто одну запись? Это тот случай, когда команда LOAD DATA вступает в действие. Она загружает записи из файла, разделенного символами табуляции. Давайте это попробуем, отредактировав файл в домашнем каталоге пользователя и добавив в него записи. Мы назовем этот файл records.txt . Здесь приведен пример:

КОД ~/records.txt

John Doe	johndoe@gentoo.org	portage
Chris White	chriswhite@gentoo.org	documentation
Sam Smith	samsmith@gentoo.org	amd64

Важно
Убедитесь, что вы знаете, с какими данными вы будете работать. Очень небезопасно использовать LOAD DATA, когда вы не уверены насчет содержимого файла!

Команда LOAD DATA имеет в каком-то смысле пространное определение, но здесь мы используем ее самую простую форму.

КОД Синтаксис LOAD DATA

LOAD DATA LOCAL INFILE '/path/to/filename' INTO TABLE table;

/path/to/filename — это каталог и имя файла, которые будут использоваться. table — это имя нашей таблицы. В этом случае, наш файл — ~/records.txt, а имя таблицы — developers.

mysql>LOAD DATA LOCAL INFILE '~/records.txt' INTO TABLE developers;

Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

Важно
Если вы обнаружили какое-либо странное поведение, убедитесь, что поля разделены символами табуляции. Если вы вставите информацию в ваш исходный файл из другого источника, это может конвертировать символы табуляции в пробелы.

Сработало хорошо. Однако, это просто вставляет записи, и не дает вам какого-либо контроля над MySQL. Множество веб-приложений используют скрипты sql для того чтобы настроить MySQL быстро и легко. Если вы хотите использовать скрипты sql, вам нужно запустить mysql в пакетном режиме, или использовать файл в качестве источника команд. Здесь приведен пример запуска mysql в пакетном режиме:

user $mysql -u root -h localhost -p < sqlfile

Как и в случае с LOAD DATA, убедитесь, что вы можете сказать что делает файл sqlfile. Невозможность этого может скомпрометировать вашу базу данных! Другим способом выполнения этого является использование команды source. Эта команда запустит команды из файла sql, находясь в интерактивном режиме mysql. Здесь показано как использовать sql file в качестве источника команд:

Если вы видите, что веб-приложение требует запуск sql файла, две команды выше могут быть использованы для выполнения данной задачи. Мы настроили нашу таблицу, как же нам проверить наши поля? Мы выполним это поиском в нашей таблице с помощью запросов.

Запросы к Таблицам MySQL

Запросы являются одной из основных функций любой базы данных SQL. Они помогают превратить данные в таблицах во что-то полезное. Большинство запросов выполняются командой SELECT . Команда SELECT — довольно сложна, и мы рассмотрим только три основных формы этой команды в данном документе.

КОД Виды команды SELECT

## (Выбрать все записи в таблице)
SELECT * FROM table;
## (Выбрать определенные записи в таблице)
SELECT * FROM table WHERE field=value;
## (Выбрать определенные поля)
SELECT field1,field2,field3 FROM table [WHERE field=value];

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

mysql>SELECT * FROM developers;

+-------------+-----------------------+----------------+
| name        | email                 | job            |
+-------------+-----------------------+----------------+
| Joe Smith   | joesmith@gentoo.org   | toolchain      |
| John Doe    | johndoe@gentoo.org    | portage        |
| Chris White | chriswhite@gentoo.org | documentation  |
| Sam Smith   | samsmith@gentoo.org   | amd64          |
| Jane Doe    | NULL                  | Outsourced job |
+-------------+-----------------------+----------------+
5 rows in set (0.00 sec)

Мы видим как данные, которые мы добавили с INSERT, так и вставленные LOAD DATA. Теперь, давайте предположим что мы просто хотим посмотреть запись для Chris White. Мы можем сделать это с помощью второй формы команды select, как показано ниже.

mysql>SELECT * FROM developers WHERE name = 'Chris White';

+-------------+-----------------------+---------------+
| name        | email                 | job           |
+-------------+-----------------------+---------------+
| Chris White | chriswhite@gentoo.org | documentation |
+-------------+-----------------------+---------------+
1 row in set (0.08 sec)

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

mysql>SELECT email,job FROM developers WHERE name = 'Chris White';

+-----------------------+---------------+
| email                 | job           |
+-----------------------+---------------+
| chriswhite@gentoo.org | documentation |
+-----------------------+---------------+
1 row in set (0.04 sec)

Этот способ выбора намного легче в управлении, особенно с большими объемами информации, как мы увидим позже. А сейчас, будучи mysql пользователем root, мы обладаем неограниченными разрешениями делать с базой данных MySQL то, что мы захотим. В среде выполнения сервера, наличие пользователя с такими привилегиями может вызвать немало проблем. Для того, чтобы контролировать кто и что может делать с базами данных, мы установим привилегии.

Привилегии MySQL

Привилегии — это то, каким доступом обладают пользователи к базам данных, таблицам, почти ко всему. На данный момент в базе данных gentoo, учетная запись MySQL root — это единственная учетная запись, которая может получить к ней доступ, учитывая ее разрешения. Теперь, давайте создадим двух обычных пользователей, guest и admin, которые получат доступ к базе данных gentoo и будут работать с информацией, хранящейся в ней. Учетная запись guest будет ограниченной в правах. Все, что он сможет сделать, это получить информацию из базы данных, и только это. admin будет иметь те же самые права на управление, что и root, но только к базе данных gentoo (а не основным базам данных mysql). Перед тем как начать, давайте рассмотрим подробнее этот, в некотором смысле, упрощенный формат команды GRANT.

Creating users

The CREATE USER SQL statement will define users and set the authentication method, commonly by password but other plugins may be available.

An example CREATE USER command is:

КОД CREATE USER Syntax

CREATE USER '[user]'@'[host]' IDENTIFIED BY '[password]';

user is the name of the user and host is the hostname the user will be accessing from. In most cases, this will be localhost. To create our users for this example:

(admin)

mysql>CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';

(guest)

mysql>CREATE USER 'guest'@'localhost' IDENTIFIED BY 'password';

Важно
A host of ‘localhost’ does not mean DNS localhost (127.0.0.1) to MySQL. Instead, it refers to the UNIX socket connection and not TCP/IP.

Предоставление Привилегий Командой GRANT

Let’s have a closer look at this somewhat simplified format of the GRANT command.

КОД Синтаксис команды GRANT

GRANT [privileges] ON database.* TO '[user]'@'[host]' IDENTIFIED BY '[password]';

Во-первых, мы имеем привилегии, которые мы хотим назначить. Исходя из того что мы выучили на данный момент, имеются несколько привилегий, которые вы можете установить:

  • ALL — Дает полный контроль базы данных со всеми привилегиями
  • CREATE — Позволяет пользователям создавать таблицы
  • SELECT — Позволяет пользователям делать запросы к таблицам
  • INSERT — Позволяет пользователям вставлять данные в таблицу
  • SHOW DATABASES — Позволяет пользователям просматривать список баз данных
  • USAGE — Пользователь не имеет привилегий
  • GRANT OPTION — Позволяет пользователям предоставлять привилегии

Заметка
Если вы запустили MySQL чтобы передавать данные веб-приложению, CREATE, SELECT, INSERT (обсуждалось здесь же), DELETE и UPDATE (для получения дальнейшей информации посмотрите раздел Справочного Руководства MySQL — Синтаксис GRANT и REVOKE) — это единственные разрешения, которые вам, скорее всего, понадобятся. Большинство делает ошибку, предоставляя все разрешения, когда в этом нет действительной необходимости. Сверьтесь с разработчиками приложения, чтобы посмотреть, не вызовут ли такие разрешения проблемы в общей работе.

Для пользователя admin, подойдет уровень ALL. Для пользователя guest, SELECT будет достаточно для доступа только на чтение. database — это база данных, над которой пользователь, как мы того желаем, должен иметь эти разрешения. В этом примере, базой данных является gentoo. .* означает все таблицы. Если бы вы хотели, вы могли бы установить права доступа для каждой из таблиц. user — это имя пользователя, а host — имя хоста, с которого пользователь будет получать доступ. В большинстве случаев, это будет localhost. И наконец, password — это пароль пользователя. Учитывая эту информацию, давайте продолжим и создадим наших пользователей.

mysql>GRANT ALL ON gentoo.* TO 'admin'@'localhost' IDENTIFIED BY 'password';

mysql>GRANT SELECT ON gentoo.* TO 'guest'@'localhost' IDENTIFIED BY 'password';

Теперь, когда мы настроили наших пользователей, давайте их протестируем. Сначала, мы завершим работу mysql, введя quit в командной строке:

Теперь мы снова в консоли. Сейчас, когда пользователи созданы, давайте продолжим и посмотрим что они могут делать.

Проверка Пользовательских Разрешений

Сейчас мы должны попытаться войти в качестве пользователя guest. В настоящий момент, пользователь guest имеет только привилегии SELECT. Это, просто-напросто, сводится к способности поиска в базе данных, и ничему другому. Продолжайте и войдите как пользователь guest.

user $mysql -u guest -h localhost -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 6 to server version: 4.0.25
 
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
 
mysql>

Теперь мы должны протестировать пользовательские ограничения. Давайте переключимся к базе данных gentoo:

mysql>USE gentoo;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed

Давайте попробуем сделать что-нибудь, что мы, как предполагается, не должны. Мы попытаемся создать таблицу.

mysql>CREATE TABLE test (test VARCHAR(20), foobar VARCHAR(2));

ERROR 1044: Access denied for user: 'guest@localhost' to database 'gentoo'

Как видите, эта функция не сработала, так как наш пользователь не имеет соответствующих прав доступа. Однако, одной из привилегий, которую мы предоставили, является выражение SELECT. Давайте попробуем:

mysql>SELECT * FROM developers;

+-------------+-----------------------+----------------+
| name        | email                 | job            |
+-------------+-----------------------+----------------+
| Joe Smith   | joesmith@gentoo.org   | toolchain      |
| John Doe    | johndoe@gentoo.org    | portage        |
| Chris White | chriswhite@gentoo.org | documentation  |
| Sam Smith   | samsmith@gentoo.org   | amd64          |
| Jane Doe    | NULL                  | Outsourced job |
+-------------+-----------------------+----------------+
5 rows in set (0.00 sec)

Команда завершилась успешно, и мы мельком увидели, что могут делать пользовательские разрешения. Мы, однако же, также создали и учетную запись admin. Она была создана для того чтобы показать, что даже пользователи, которым предоставлены все права, все же могут иметь ограничения. Завершите работу MySQL и войдите под учетной записью admin.

user $mysql -u admin -h localhost -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 7 to server version: 4.0.25
 
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
 
mysql>

Для начала, мы попытаемся создать новую базу данных от учетной записи admin. Этот пользователь будет иметь права доступа схожие с учетной записью root в MySQL, и будет способен выполнить любые изменения выбранной базы данных gentoo. Это протестирует права доступа данного пользователя к главной базе данных MySQL. Вспомните, что ранее мы установили разрешения только для определенной базы данных.

mysql>CREATE DATABASE gentoo2;

ERROR 1044: Access denied for user: 'admin@localhost' to database 'gentoo2'

В самом деле, пользователь admin не может создавать базы данных в основной базе данных MySQL, вопреки всем своим разрешениям к базе данных gentoo. Однако, мы все еще способны использовать учетную запись admin для изменения базы данных gentoo, как показано на этом примере вставки данных.

mysql>USE gentoo;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> INSERT INTO developers VALUES('Bob Simmons', 'bobsimmons@gentoo.org', 'python');
Query OK, 1 row affected (0.08 sec)

Пользователь admin может получить доступ к базе данных по желанию. Иногда, мы должны избавиться от пользовательских разрешений. Примером может быть все что угодно, от пользователя, вызывающего проблемы, до уволенного сотрудника. Давайте рассмотрим как отключить пользовательские разрешения командой REVOKE.

Удаление Прав Доступа Пользователя Командой REVOKE

Команда REVOKE позволяет нам запретить доступ пользователю. Мы можем запретить или все права на доступ, или определенные права. В действительности, формат весьма схож с командой GRANT .

КОД Синтаксис REVOKE

REVOKE [privileges] ON database.* FROM '[user]'@'[host]';

Здесь, параметры объясняются в разделе команды GRANT . Однако же, в этом разделе, мы собираемся запретить пользователю доступ полностью. Давайте предположим, мы обнаружили, что учетная запись guest вызывает некоторые проблемы с безопасностью. Мы решаем отозвать все привилегии. Мы заходим под учетной записью root и делаем то, что необходимо.

mysql>REVOKE ALL ON gentoo.* FROM 'guest'@'localhost';

Query OK, 0 rows affected (0.00 sec)

Заметка
В данном случае, права доступа пользователя достаточно просты, поэтому их удаление из базы данных не является проблемой. Однако, в более общем случае, вы, скорее всего, использовали бы *.* вместо gentoo.* для того чтобы удалить права доступа пользователя ко всем другим базам данных.

Давайте теперь выйдем и попытаемся зайти в качестве пользователя guest.

user $mysql -u guest -h localhost -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9 to server version: 4.0.25
 
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
 
mysql>

Хотя мы и были способны выполнить вход, наши права доступа к gentoo теперь исчезли.

mysql>USE gentoo;

ERROR 1044: Access denied for user: 'guest@localhost' to database 'gentoo'

И наш проблемный пользователь больше не может получить доступ к базе данных gentoo. Пожалуйста, заметьте, что пользователь все еще может выполнить вход. Это потому что он остается в основной базе данных MySQL. Давайте рассмотрим как полностью удалить учетную запись командой DELETE и взглянем на таблицу пользователей MySQL.

Удаление Учетных Записей с Использованием DELETE

Таблица пользователей MySQL является перечислением всех пользователей и информации о них. Убедитесь, что вы выполнили вход под root. Затем продолжайте и используйте основную базу данных MySQL.

DROP USER will delete the record in the user table and all privilege tables. Let’s go ahead and do that:

mysql>DROP USER 'guest'@'localhost';

Query OK, 1 row affected (0.07 sec)

Кажется, сработало на отлично. Давайте это протестируем, выйдя и попытаясь войти как пользователь guest.

user $mysql -u guest -h localhost -p

Enter password:
ERROR 1045: Access denied for user: 'guest@localhost' (Using password: YES)

Наш пользователь успешно удален!

Заключение

В то время как это руководство сфокусировано, в основном, на настройке MySQL из командной строки, доступно несколько альтернатив с графическим интерфейсом:

  • phpMyAdmin — Популярный инструмент администрирования MySQL, основанный на php.
  • mysqlnavigator — Интерфейс QT к MySQL.
  • gmyclient — MySQL клиент, основанный на GNOME.
  • knoda — клиент MySQL для KDE.

Это завершает вводное руководство к MySQL. Я надеюсь это дало вам лучшее понимание основ MySQL и настройки базы данных.


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Chris White, Shyam Mani, Xavier Neys
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article’s associated history page.

Понравилась статья? Поделить с друзьями:
  • Руководство санкт петербургский государственный университет
  • Орнидазол инструкция по применению таблетки для мужчин 500мг инструкция
  • Селенга т71 приставка для телевизора инструкция
  • Как делать покупки на вайлдберриз пошаговая инструкция с телефона
  • Гептрал инструкция по применению цена таблетки уколы