УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АСУ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К лабораторным работам по курсу
Сети ЭВМ и телекоммуникации
для подготовки инженеров по направлению
Информатика и вычислительная техника
Лабораторная работа №5
Инструментарий веб-разработчика: MySQL, phpMyAdmin.
Уфа 2007
Содержание
Введение 3
1. Что такое MySQL 4
2. Основные возможности MySQL 4
3. Установка MySQL 5.0.45 6
4. Что такое phpMyAdmin 14
5. Установка phpMyAdmin 2.11.2.1 15
6. Проверка работоспособности Web-сервера. 17
7. Содержание работы 18
7.1. Исходные данные к заданию 18
7.2. Перечень исследуемых задач анализатора протоколов (в рамках работы): 18
7.3. Содержание отчета 18
Список литературы 19
Введение
В предыдущей лабораторной работе «Инструментарий веб-разработчика: Apache, PHP» Вы познакомились с принципами установки и настройки Web-сервера с поддержкой языка серверных сценариев PHP. В этой работе мы продолжим настраивать, ранее установленный Web-сервер, подключив к нему СУБД MySQL и графическое средство по работе с данной СУБД phpMyAdmin.
Результатом правильного выполнения работы будет корректная работа phpMyAdmin, который использует для своей работы все ранее установленные компоненты Web-сервера (Apache, PHP, MySQL).
Поясним СУБД MySQL и средство управления данной СУБД PhpMyAdmin.
1. Что такое MySQL
MySQL – компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании.
MySQL был разработан компанией TcX (Михаэль Видениус- Michael Widenius, monty@analytikerna.se) для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 БД, которые содержат 10,000 таблиц, из которых более чем 500 имеют более 7 миллионов строк.
MySQL-сервер является бесплатным для некоммерческого использования. Иначе необходимо приобретение лицензии. MySQL является относительно небольшой и быстрой реляционной СУБД основанной на традициях Hughes Technologies Mini SQL (mSQL).
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту.
2. Основные возможности MySQL
-
Внутренние характеристики и переносимость
Написан на C и C++. Протестирован на множестве различных компиляторов.
Работает на различных платформах.
Для обеспечения переносимости используется GNU Automake, Autoconf и Libtool.
API для C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl.
Полностью многопоточный с использованием потоков ядра. Это означает, что, если такая возможность обеспечивается, можно легко организовать работу с несколькими процессорами.
Очень быстрые дисковые таблицы на основе В-деревьев со сжатием индексов.
Очень быстрая базирующаяся на потоках система распределения памяти.
Очень быстрые соединения, использующие оптимизированный метод однопроходного мультисоединения (one-sweep multi-join).
Хеш-таблицы в памяти, используемые как временные таблицы.
SQL-функции реализованы при помощи хорошо оптимизированной библиотеки классов, поэтому они выполняются настолько быстро, насколько это возможно. Обычно после инициализации запроса распределения памяти не происходит вообще.
MySQL- код протестирован с использованием Purify (коммерческий детектор утечки памяти), а также Valgrind, одного из GPL-инструментов (http://developer.kde.org/~sewardj/
Типы столбцов
Большое количество: целочисленные со знаком/беззнаковые, длиной в 1, 2, 3, 4 и 8 байтов, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET и ENUM. See Раздел 6.2, «Типы данных столбцов».
С записями фиксированной и переменной длины.
-
Все столбцы имеют значения по умолчанию. С помощью INSERT можно вставить подмножество столбцов таблицы; столбцы, для которых явно не заданы значения, устанавливаются в значения по умолчанию.
-
Полная поддержка операторов и функций в SELECT- и WHERE- частях запросов. Например:
mysql> SELECT CONCAT(first_name, " ", last_name)
-> FROM tbl_name
-> WHERE income/dependents > 10000 AND age > 30;
Полная поддержка для операторов SQL GROUP BY и ORDER BY с выражениями SQL. Поддержка групповых функций (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() и MIN()).
Поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN с синтаксисом ANSI SQL и ODBC.
Разрешены псевдонимы для таблиц и столбцов в соответствии со стандартом SQL92.
DELETE, INSERT, REPLACE, and UPDATE возвращают число строк, которые были изменены. Вместо этого можно задать возвращение совпавших строк. Для этого следует установить флаг при соединении с сервером.
Команду SHOW, которая является специфической для MySQL, можно использовать для получения информации о базах данных, таблицах и индексах. Чтобы выяснить, как оптимизатор выполняет запрос, можно применять команду EXPLAIN.
Имена функций не конфликтуют с именами таблиц и столбцов. Например, ABS является корректным именем столбца. Для вызова функции существует только одно ограничение: между именем функции и следующей за ним открывающей скобкой ‘(’ не должно быть пробелов
В одном и том же запросе могут указываться таблицы из различных баз данных (с версии 3.22).
Безопасность
-
Система, основанная на привилегиях и паролях, за счет чего обеспечивается гибкость и безопасность, и с возможностью верификации с удаленного компьютера. Пароли защищены, т.к. они при передаче по сети при соединении с сервером шифруются.
Масштабируемость и ограничения
-
Управляет очень большими базами данных. Компания MySQL AB. использует MySQL для работы с несколькими базами данных, которые содержат 50 миллионов записей, кроме того, нам известны пользователи, использующие MySQL для работы с 60000 таблицами, включающими около 5000000000 строк.
Для каждой таблицы разрешается иметь до 32 индексов. Каждый индекс может содержать от 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса 500 бит (это значение может быть изменено при компиляции MySQL). Для индекса может использоваться префикс поля CHAR или VARCHAR.
Установка соединений
-
Клиенты могут соединяться с MySQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT).
Поддержка ODBC (Open-DataBase-Connectivity) для Win32 (с исходным кодом). Все функции ODBC 2.5 и многие другие. Например, для соединения с MySQL можно использовать MS Access.
Локализация
-
Сервер может обеспечивать сообщения об ошибках для клиентов на различных языках.
Полная поддержка нескольких различных кодировок, включая ISO-8859-1 (Latin1), немецкий, big5, ujis и многие другие. Например, скандинавские символы разрешены в именах таблиц и столбцов.
Для хранения всех данных используется выбранный набор символов. Все сравнения для столбцов с нормальными строками проводятся с учетом регистра символов.
Сортировка производится согласно выбранному алфавиту (по умолчанию используется шведский). Эту установку можно изменить при запуске сервера MySQL. Чтобы ознакомиться с примером очень грамотной сортировки, можно обратиться к коду сортировки для чешского языка. MySQL поддерживает много различных кодировок, которые можно задавать во время компиляции и в процессе работы.
Клиенты и инструментарий
Включает myisamchk, очень быструю утилиту для проверки, оптимизации и восстановления таблиц. Все функциональные возможности myisamchk также доступны через SQL-интерфейс.
Все MySQL-программы можно запускать с опциями --help или -? для получения помощи.
3. Установка MySQL 5.0.45
В качестве примера демонстрации установки MySQL возьмем последнюю стабильную версию на момент написания методических указаний с сайта разработчиков: http://www.mysql.com/
Дистрибутив: http://dev.mysql.com/downloads/mysql/5.0.html
Скачайте "Windows (x86) ZIP/Setup.EXE" архив со страницы дистрибутивов, распакуйте его и запустите Setup.exe.
Установка в картинках
Далее будут показаны те диалоговые окна, в которых необходимо делать какой-либо выбор.
Отметьте в данном окне выборочную установку компонентов "Custom".
Здесь вы можете выбрать дополнительные компоненты и сменить каталог установки программы.
Если у вас еще нет учетной записи на сайте MySQL.com, то можете создать его в данном диалоговом окне выбрав "Create a new free MySQL.com account" (не помешает). Либо выберите "Skip Sign-Up" для перехода на следующую страницу.
Теперь приступим к настройке MySQL сервера.
Выбираем детализированную настройку - "Detailed Configuration".
Оставляем отмеченным пункт "Developer Machine".
Выбрав пункт "Multifunctional Database", вы сможете работать как с таблицами типа InnoDB (с возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило, для веб-разработок используется именно этот тип таблиц).
Выбор диска и каталога для хранения таблиц типа InnoDB.
В данном диалоговом окне выбирается максимально возможное количество подключений к серверу MySQL. При выборе "Decision Support (DSS)/OLAP", максимальное количество подключений будет ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере и отсутствии большого количества одновременных подключений.
Отметив "Enable TCP/IP Networking" мы включаем поддержку TCP/IP соединений и выбираем порт, через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306. Отметив "Enable Strict Mode", мы задаем режим строгого соответствия стандарту SQL (данный параметр рекомендуется оставлять включенным).
Обратите внимание на выставление настроек данного окна. Отметив "Manual Selected Default Character Set / Collation" и выбрав из ниспадающего списка "cp1251" определяем, что изначально для таблиц будет использоваться кодировка Cyrillic Windows (cp1251), что означает корректную работу с русским языком в данной кодировке.
Если отметить "Install As Windows Service", сервер будет запускаться в виде сервиса, что является рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее, уберите галочку рядом с "Launch the MySQL Server automatically", мы будем запускать сервер вручную. Так же поставьте галочку рядом с "Include Bin Directory in Windows PATH" - это позволит установить видимость каталога "bin", для командной строки.
Установите пароль главного пользователя - "root". Советуем сделать это. Поставьте хотя бы какой-нибудь простенький пароль, только не оставляйте поле пустым, это убережет вас от возможных неприятностей в дальнейшем.
В данном окне обратите внимание на строку "Write configuration file", которая указывает на месторасположение конфигурационного файла MySQL - "my.ini", который далее, необходимо будет немного отредактировать.
Откройте для редактирования файл "my.ini".
1) В раздел [client], после строки:
port=3306
Добавьте строку определяющую каталог содержащий файлы описания кодировок:
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"
2) В раздел [mysqld], после строки:
port=3306
Добавьте следующие две строки, первая из которых вам уже известна, вторая – устанавливает кодировку в которой данные передаются MySQL:
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"
init-connect="SET NAMES cp1251"
3) Далее, найдите строку:
default-storage-engine=INNODB
Замените изначально устанавливаемый тип таблиц:
default-storage-engine=MYISAM
Сохраните изменения и закройте файл "my.ini".
Установка и настройка сервера MySQL – завершена.
4. Что такое phpMyAdmin
В качестве интерфейса для MySQL используется phpMyAdmin - PHP приложение, запущенное на Web-сервере. phpMyAdmin может управлять как целым MySQL сервером (для этого необходимы права супер-пользователя), так и отдельной базой данных. Возможно мультипользовательское использование. В последнем случае пользователи могут пользоваться только назначенным им базами данных.
В данный момент phpMyAdmin позволяет:
создавать и удалять базы данных
создавать, копировать, удалять, переименовывать и изменять таблицы
осуществлять сопровождение таблиц
удалять, править и добавлять поля
выполнять SQL-запросы, в том числе пакетные SQL-запросы
управлять ключами
загружать текстовые файлы в таблицы
создавать (*) и просматривать дампы таблиц
экспортировать (*) данные в форматах CSV, XML, PDF, ISO/IEC 26300 - OpenDocument Text and Spreadsheet, Word, Excel и LATEX
администрирование нескольких серверов
управлять пользователями MySQL и привилегиями
проверять целостность ссылочных данных в таблицах MyISAM
использовать запрос по образцу (Query-by-example - QBE), создавать комплексные запросы, автоматически соединяясь с указанными таблицами
создавать графическую схему базы данных в формате PDF
осуществлять поиск в базе данных или в её разделах
модифицировать хранимые данные в различные форматы, использующиеся в предустановленных функциях, например, отображение BLOB-данных как изображений или как загружаемые ссылки и т.д.
поддерживает InnoDB таблицы и внешние ключи
поддерживает mysqli, улучшенное расширение MySQL
переведен более чем на 50 языков
5. Установка phpMyAdmin 2.11.2.1
Сайт разработчиков: http://phpMyAdmin.net/
Дистрибутив (скачайте all-languages.zip архив): http://phpMyAdmin.net/home_page/downloads.php
Документация на русском языке: http://php-myadmin.ru/
Вместо тестирования всего хозяйства, предлагаю установить скрипт phpMyAdmin для управления базой данных MySQL.
Остановите сервис Apache с помощью ярлыка "Stop" находящегося в меню "Start" ("Пуск"), либо с помощью пакетного файла "stop-webserver.bat". Распакуйте архив в каталог "C:\apache\localhost\www\". Появившуюся папку, для большего удобства, желательно переименовать в "phpMyAdmin". Далее, в каталоге "C:\apache\localhost\www\phpMyAdmin" создайте файл "config.inc.php" следующего содержания (не забудьте вписать пароль пользователя "root", который вы создавали при установке MySQL):
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'пароль'; // Пароль пользователя root
?>
Обратите внимание, что при подключении мы указываем phpMyAdmin, использовать расширение "mysqli", так как установленный нами MySQL 5, и произведенные выше настройки PHP 5, позволяют полноценно работать с функциями данного расширения.
Далее, откройте многострадальный "httpd.conf" и добавьте в блок начинающийся строкой:
Следующую строку:
Alias /pma "C:/apache/localhost/www/phpMyAdmin"
Теперь запустите сервисы с помощью пакетного файла "start-webserver.bat" и введите в адресной строке браузера "localhost/phpMyAdmin". Вы увидите основное окно скрипта phpMyAdmin для управления базами данных MySQL. Благодаря добавленной нами выше строке в конфигурационный файл Apache (так называемый алиас), мы также можем попасть в phpMyAdmin из любого хоста, для чего понадобится установить виртуальный хост и ввести в адресной строке браузера адрес вида:
"имя хоста/pma". Например: "http://www.test.ru/pma".
Далее мы воспользуемся возможностью установить расширение функциональности phpMyAdmin, позволяющее работать с закладками, историями вводимых команд, дизайнером связанных таблиц и некоторыми другими дополнительными функциями.
Для установки расширения сперва необходимо создать базу данных "phpMyAdmin" и импортировать в нее специально предназначенные таблицы, для чего выберите на главной странице ссылку "Import" ("Импорт"), на открывшейся странице, в разделе "File to import" ("Импортируемый файл") нажмите кнопку "Browse..." ("Обзор..."), выберите файл "create_tables_mysql_4_1_2+.sql", находящийся в каталоге "scripts", и нажмите кнопку "Go" ("OK").
Следующим шагом необходимо создать специального пользователя с именем "pma" и наделить его соответствующими правами, для чего нажмите "Privileges" ("Привилегии"), на открывшейся странице нажмите ссылку "Add a new User" ("Добавить нового пользователя"), в разделе "Login Information" ("Информация учетной записи") заполните поля следующим образом:
User name (Имя пользователя): pma
Host (Хост): localhost
Password (Пароль): придумайте пароль
Нажмите кнопку "Go" ("OK").
На открывшейся странице, в разделе "Database-specific privileges" ("Привилегии уровня базы данных") из ниспадающего меню "Add privileges on the following database:" ("Добавить привилегии на следующую базу") выберите "phpMyAdmin". Откроется следующая страница, где в разделе "Databasespecific privileges" ("Привилегии уровня базы данных"), в блоке "Data" ("Данные"), поставьте галочки рядом с опциями: SELECT, INSERT, UPDATE, DELETE и нажмите "Go" ("OK").
И последнее что надо сделать – это вновь открыть конфигурационный файл phpMyAdmin "config.inc.php" и добавить несколько новых директив. Все содержимое конфигурационного файла должно будет выглядеть примерно так:
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'пароль'; // Пароль пользователя root.
$cfg['Servers'][$i]['controluser'] = 'pma'; // Имя созданного вами только что
пользователя для доступа к расширенным таблицам.
$cfg['Servers'][$i]['controlpass'] = 'пароль'; // А здесь его пароль.
$cfg['Servers'][$i]['pmadb'] = 'phpMyAdmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
?>
Теперь у вас будет возможность воспользоваться всеми дополнительными функциями скрипта phpMyAdmin.
Вот и все. Полная установка и настройка скрипта phpMyAdmin – завершена, как и всего комплекса веб-разработчика в целом.
6. Проверка работоспособности Web-сервера.
Перейдите в браузере на адрес http://127.0.0.1/pma/ . Вам будет предложено указать имя и пароль, которые Вы ввели на этапе установки MySQL. После успешной авторизации Вы перейдете в систему управления PhpMyAdmin. Пример окна приведен на рисунке 1.
Рис 1. Проверка работоспособности Web-сервера.
В случае если указанное окно не появилось или возникла ошибка, проверьте, сначала доступность адреса http://127.0.0.1/index.php . Если адрес доступен и Вы видите тестовый пример, значит ошибки произошли на этапе установки настройки MySQL или phpMyAdmin. Проверьте еще раз параметры настройки. Дополнительно убедитесь, что запущены соответствующие службы (или консольные файлы) в списке служб (оснастка services.msc).
Просмотреть список служб можно через главное меню OC Win Start/Control panel/ Administrative Tools/ Services или Пуск/ Панель управления / Администрирование / Службы.
В списке служб необходимо проверить наличие и статус (должен быть started) служб Apache, MySQL.
7. Содержание работы
7.1. Исходные данные к заданию
Web-сервер Apache с подключенным языком серверных сценариев PHP.
7.2. Перечень исследуемых задач анализатора протоколов (в рамках работы):
настроить поддержку СУБД MySQL;
настроить работу через графическое средство phpMyAdmin;
проверить корректность работы Web- сервера в среде phpMyAdmin.
7.3. Содержание отчета
порядок настройки поддержки СУБД MySQL;
порядок настройки phpMyAdmin;
вывод тестового примера проверки работоспособности;
выводы.
Список литературы
http://dev.mysql.com/doc/ , официальный англоязычный сайт СУБД MySQL.
http://www.mysql.ru/docs/tkachenko/ , Вступление в PHP и MySQL, Вадим Ткаченко
http://www.mysql.ru/docs/pautov/ , Описание СУБД MySQL, А.Паутов
http://php-myadmin.ru/doc/ability.html , русскоязычный сайт PhpMyAdmin
Методические указание к лабораторной работе № 4, Сети ЭВМ и телекоммуникации
http://php-myadmin.ru/learning/instrument-intro.html, инструментарий веб- разработчика, статья, Виктор Волков, Иван Шумилов.
|