Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Подготовка к работе c PHP
 
 

Установка MySQL для Linux (Unix)

Рассмотрим этапы установки и настройки MySQL в среде Linux (Unix).

Установка MySQL в Linux

Для установки MySQL на Linux рекомендуется применять пакеты RPM. В настоящее время RPM для MySQL создаются на операционной системе SuSE Linux 7.3, но они должны работать также и для других версий Linux, которые поддерживают rpm и используют glibc.

В случае возникновения проблем с файлом RPM (например, если вы получили ошибку ``Sorry, the host 'xxxx' could not be looked up''), обратитесь к разделу Примечания к бинарным дистрибутивам Linux документации на MySQL.

Доступны для использования следующие RPM-файлы:

  • MySQL-server-VERSION.i386.rpm. Сервер MySQL. Если вам нужно только подключаться к серверу MySQL, запущенному на другом компьютере, этот файл не требуется. Обратите внимание, что выхода 4.0.10 этот пакет назывался MySQL-VERSION.i386.RPM.
  • MySQL-client-VERSION.i386.rpm. Стандартные клиентские программы MySQL. Установка этого пакета требуется всегда.
  • MySQL-bench-VERSION.i386.rpm. Тесты и контрольные задачи. Для файла требуется наличие модулей Perl и msql-mysql-modules.
  • MySQL-devel-VERSION.i386.rpm. Библиотеки и включаемые файлы, необходимые для компилирования других клиентов MySQL, таких как модули Perl.
  • MySQL-shared-VERSION.i386.rpm Этот пакет содержит динамические библиотеки (libmysqlclient.so*), нужные для некоторых языков программирования или приложений для того, чтобы работать с MySQL.
  • MySQL-embedded-VERSION.i386.rpm Встраиваемая библиотека сервера MySQL (MySQL 4.x и более новые).
  • MySQL-VERSION.src.rpm. Этот файл содержит исходный код для всех предыдущих пакетов. Файл также можно использовать для создания файлов RPM для других архитектур (например Alpha или SPARC).

Для просмотра всех файлов в пакете RPM выполните команду:

shell> rpm -qpl MySQL-VERSION.i386.rpm

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

shell> rpm -i MySQL-server-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm

Для установки только клиентского пакета выполните команду:

shell> rpm -i MySQL-client-VERSION.i386.rpm

RPM помещает данные в '/var/lib/mysql' и создает соответствующие вхождения в `/etc/init.d/' для автоматического запуска сервера во время начальной загрузки (в случае, если у вас имеется предыдущая инсталляция, можно создать копию ранее установленного файла запуска MySQL, чтобы изменения в нем не были утеряны.)

Если вы хотите установить MySQL RPM на старших версиях Linux, которые не поддерживают init-скрипты в '/etc/init.d' (непосредственно или посредством символической ссылки), вам следует создать символическую ссылку на старое расположение перед тем, как устанавливать RPM:

shell> cd /etc ; ln -s rc.d/init.d .

Однако, все современные поставки Linux должны поддерживать эту схему каталогов, т.к. это требование стандарта LSB (Linux Standard Base).

После установки RPM, mysqld должен заработать и вы можете сразу приступать к использованию MySQL.

Если при установке возникнут проблемы, то за более подробной информацией следует обратиться к главе документации на MySQL, в которой описывается установка из бинарного дистрибутива (Установка бинарного дистрибутива MySQL).

Настройка MySQL в Linux

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

mysql_install_db

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

База данных mysql является системной базой данных и содержит следующие таблицы:

  • таблицу db;
  • таблицу host;
  • таблицу user.

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

safe_mysql &

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

mysql: ready for connections

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

mysql -u root mysql

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

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

mysql>UPDATE user SET password=PASSWORD('new_password') WHERE user='root';  

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

mysql>FLUSH PRIVILEGES;

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

shell>mysqladmin -p reload

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

Установите права доступа к /mysql

cmod +x /путь_к_mysql/mysql

Путь_к_mysql у вас, вероятно, будет таким: /etc/rc.d/init.d/mysql.

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

mysql restart

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

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

ERROR: Access dinied for user: 'riit@localhost' (Using password: NO)

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

Последнее, что вам нужно сделать - это добавить сервер MySQL в автозапуск. С этой целью перейдите в директорию /etc/rc.d/rc3.d/ и создайте символическую ссылку на файл /путь_к_mysql/mysql

ln -s S14mysql /путь_к_mysql/mysql

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

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

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

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

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

mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'password' 
WITH GRANT OPTION;

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

GRANT CREATE,DROP,SELECT,INSERT,UPDATE,DELETE,INDEX ON user.* TO user% IDENTIFIED 
BY 'user_password';

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

Приведем полный список соответствующих полномочий:

Полномочия пользователей сервера MySQL
Полномочия Описание
SELECT, INSERT, UPDATE, DELETE Одноименные операции с данными: пользователь имеет право просматривать, добавлять, модифицировать, удалять данные в таблицах базы данных
INDEX Пользователь имеет право производить операции с индексами таблиц
REFERENCES Пользователь имеет право работать со ссылками в базах данных и таблицах
CREATE, DROP Создание и удаление таблиц и баз данных
GRANT, ALTER Операции с полномочиями
RELOAD, SHUTDOWN, PROCESS Пользователь имеет право перезагружать, останавливать сервер и просматривать все процессы (подключения)

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

Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv 
Reload_priv Shutdown_priv Process_priv File_priv

Поля Host, User, Password - это, соответственно, узел, из которого пользователь может получить доступ, имя пользователя, пароль пользователя. Все остальные поля задают полномочия для пользователя. Если выполнение какой-либо операции разрешено пользователю, соответствующее поле должно быть раным "Y". В противном случае установите значение "N".

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

INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, 
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv) VALUES 
('localhost', 'admin', password ('topsecret'), 
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

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

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

INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv) 
VALUES ('%', 'user', password('topsecret'), 'Y', 'Y', 'Y', 'Y');

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

 
 
 Содержание 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS