Главная » 2013 » Декабрь » 12 » 16.1. Установка сервера
02:03
16.1. Установка сервера

В этой главе я кратко опишу, как установить популярный сервер баз данных MySQL. Благодаря своей простоте сервер MySQL приобрел широкое распространение в сети Интернет. При создании Интернет‑сервера вы просто не сможете обойтись без сервера MySQL: большинство провайдеров предоставляет хостинг вместе с сервером баз данных, большинство дизайнеров выбирают MySQL, потому что практически невозможно построить серьезный Интернет‑проект без использования баз данных.

Я здесь не буду рассматривать технические характеристики сервера MySQL и не буду сравнивать его с другими серверами баз данных, такими, как InterBase Server, IBM DB/2, Oracle. MySQL идеально подходит практически для любого Интернет‑проекта. Естественно, если вы создаете распределенную систему обработки информации, вам лучше использовать InterBase Server или Oracle, поскольку эти СУБД являются более масштабируемыми, чем MySQL. Итак, приступим к настройке сервера. Прежде всего нужно установить пакеты, необходимые для работы MySQL.

Я использую MySQL версии 3.20, поэтому я установил такие пакеты:

MySQL_GPL‑3.20.32a‑18mdk.

MySQL_GPL‑client‑3.20.32a‑18mdk.

MySQL_GPL‑shared‑libs‑3.20.32a‑18mdk.

MySQL_GPL‑bench‑3.20.32a‑18mdk.

MySQL_GPL‑resolveip‑3.20.32a‑18mdk.

Проще всего воспользоваться командой rpm –ih MySQL* для установки сервера. Возможно, вы не захотите устанавливать клиентскую версию MySQL‑client, однако на этапе настройки я рекомендую все‑таки установить ее – она будет использоваться для тестирования сервера.

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

Если основная база данных существует, программа сообщит вам об этом. Теперь нужно установить пароль для пользователя root. По умолчанию пользователь root не имеет пароля. Я не буду долго объяснять, как важен правильно заданный пароль для безопасности системы, не говоря уже об его отсутствии. База данных mysql является системной базой данных и содержит следующие таблицы:

1. таблицу db;

2. таблицу host;

3. таблицу user.

Сейчас нас интересует таблица user. Она содержит пароли всех пользователей, которые имеют право работать с сервером. На данном (начальном) этапе в базу данных внесен только один пользователь – root. Для изменения пароля запустите сервер командой:

Эта команда запустит сервер в режиме демона и освободит консоль. Если все пакеты были установлены правильно, вы увидите сообщение:

Однако, может быть и другое сообщение, свидетельствующее об удачном запуске. Затем введите команду:

Данная команда запускает клиент MySQL. При этом используется имя пользователя root, даже если вы работаете под другой учетной записью. Последний параметр определяет базу данных – mysql.

Измените пароль суперпользователя с помощью команды:

Как вы заметили, это обычный SQL‑запрос, обновляющий поле Password таблицы user для пользователя root. Теперь нужно, чтобы MySQL принял изменения. Для этого выполните еще один запрос SQL:

Для принятия изменений можно также использовать программу mysqladmin с параметром reload. Вызвать программу можно так:

Параметр –р вам обязательно нужно использовать, так как вы только что установили пароль для пользователя root. Выйти из клиента mysql вы можете, введя команду quit.

Установите права доступа к сценарию /etc/re. d/init. d/mysql:

Теперь можете перезапустить сервер командой:

Если вы забудете пароль, вы его уже не восстановите. Единственный выход из этого положения – удалить каталог /var/lib/mysql/mysql и создать базу mysql заново командой mysql_install_db.

Теперь вы уже не можете зарегистрироваться на сервере без пароля. Если вы введете команду mysql –u root mysql, то получите следующее сообщение:

*

Для регистрации на сервере теперь нужно использовать команду mysql –u root –p. Параметр –р запросит пароль при регистрации.

Последнее, что вам осталось сделать – это добавить сервер MySQL в автозапуск. С этой целью перейдите в каталог /etc/re. d/rc3.d/ и создайте символическую ссылку на файл /etc/re. d/init. d/mysql:

Префикс S14 определяет очередность запуска сервера mysql. В данном случае он запустится после сервисов network (S10) и portmap (S11). У вас эти значения могут быть другими.

В своей работе демон mysqld использует файл журнала /var/log/mysql. log. Именно в него заносятся все транзакции, а также все команды, которые ввел пользователь. После установки сервера нужно внести пользователей, которые имеют право работать с сервером баз данных. Введите следующий запрос:

Введенный вами запрос создаст пользователя admin, который будет иметь право выполнять любые операции со всеми базами данных. Данный пользователь будет иметь право подключаться к серверу с компьютера localhost, используя пароль password.

Маска *.* определяет, к каким базам данных и таблицам имеет право подключаться тот или иной пользователь. Первая звездочка определяет базу, а вторая – таблицу. Если вам нужно, чтобы пользователь admin имел право подключаться с любого хоста, используйте знак процента вместо имени хоста. В этом случае запрос будет выглядеть так:

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

Перед выполнением данного запроса необходимо создать базу данных user. Данный запрос позволяет пользователю user выполнять все операции с его базой данных.

Полный список полномочий представлен в табл. 16.1. Если запрос GRANT у вас не работает, то вы можете внести пользователя непосредственно в таблицу user базы данных mysql. Структура таблицы user выглядит следующим образом:

Поля Host, User, Password – это, соответственно, узел, из которого пользователь может получить доступ, имя пользователя, пароль пользователя.

Полномочия пользователей сервера MySQL Таблица 16.1

Полномочия

Описание

SELECT, INSERT, UPDATE, DELETE

Одноименные операции с данными: пользователь имеет право просматривать, добавлять, модифицировать, удалять данные в таблицах баз данных

INDEX

Пользователь имеет право производить операции с индексами таблиц

REFERENCES

Пользователь имеет право работать со ссылками в базах данных и таблицах

CREATE, DROP

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

GRANT, ALTER

Операции с полномочиями

RELOAD, SHUTDOWN, PROCESS

Пользователь имеет право перезагружать, останавливать сервер и просматривать все процессы (подключения)

Все остальные поля задают полномочия для пользователя. Если выполнение какой‑нибудь операции разрешено пользователю, соответствующее поле должно быть равным «Y». В противном случае установите значение «N».

Например, нам нужно создать пользователя admin, который должен иметь все полномочия. Это можно сделать с помощью такого запроса SQL:

При вводе запроса обратите внимание на регистр названий полей. Сервер MySQL различает прописные и строчные буквы! С помощью вышеприведенного запроса был создан пользователь admin, который имеет право регистрироваться на сервере только из узла localhost. Если вам нужно разрешить регистрацию из любого узла сети, используйте знак процента, однако это не совсем корректно с точки зрения безопасности. Пользователь admin обладает всеми возможными привилегиями. Пароль пользователя – 4td561sl2.

Для создания обыкновенного пользователя используйте следующий запрос:

Категория: Установка MySQL | Просмотров: 479 | Добавил: spb_serge | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: