УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АСУ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К лабораторным работам по курсу
Сети ЭВМ и телекоммуникации
для подготовки инженеров по направлению
Информатика и вычислительная техника
Лабораторная работа №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.
Установка в картинках
Далее будут показаны те диалоговые окна, в которых необходимо делать какой-либо выбор.
![](114566_html_m5ecb737e.gif)
Отметьте в данном окне выборочную установку компонентов "Custom".
![](114566_html_78561e.gif)
Здесь вы можете выбрать дополнительные компоненты и сменить каталог установки программы.
![](114566_html_m2324847d.gif)
Если у вас еще нет учетной записи на сайте MySQL.com, то можете создать его в данном диалоговом окне выбрав "Create a new free MySQL.com account" (не помешает). Либо выберите "Skip Sign-Up" для перехода на следующую страницу.
![](114566_html_de2462c.gif)
Теперь приступим к настройке MySQL сервера.
![](114566_html_3c5914b7.gif)
Выбираем детализированную настройку - "Detailed Configuration".
![](114566_html_m75b1b3dc.gif)
Оставляем отмеченным пункт "Developer Machine".
![](114566_html_m54b0e0da.gif)
Выбрав пункт "Multifunctional Database", вы сможете работать как с таблицами типа InnoDB (с возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило, для веб-разработок используется именно этот тип таблиц).
![](114566_html_m30aa7a39.gif)
Выбор диска и каталога для хранения таблиц типа InnoDB.
![](114566_html_77dfc64e.gif)
В данном диалоговом окне выбирается максимально возможное количество подключений к серверу MySQL. При выборе "Decision Support (DSS)/OLAP", максимальное количество подключений будет ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере и отсутствии большого количества одновременных подключений.
![](114566_html_mdd16b3.gif)
Отметив "Enable TCP/IP Networking" мы включаем поддержку TCP/IP соединений и выбираем порт, через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306. Отметив "Enable Strict Mode", мы задаем режим строгого соответствия стандарту SQL (данный параметр рекомендуется оставлять включенным).
![](114566_html_59894971.gif)
Обратите внимание на выставление настроек данного окна. Отметив "Manual Selected Default Character Set / Collation" и выбрав из ниспадающего списка "cp1251" определяем, что изначально для таблиц будет использоваться кодировка Cyrillic Windows (cp1251), что означает корректную работу с русским языком в данной кодировке.
![](114566_html_m59959c4b.gif)
Если отметить "Install As Windows Service", сервер будет запускаться в виде сервиса, что является рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее, уберите галочку рядом с "Launch the MySQL Server automatically", мы будем запускать сервер вручную. Так же поставьте галочку рядом с "Include Bin Directory in Windows PATH" - это позволит установить видимость каталога "bin", для командной строки.
![](114566_html_34cb0122.gif)
Установите пароль главного пользователя - "root". Советуем сделать это. Поставьте хотя бы какой-нибудь простенький пароль, только не оставляйте поле пустым, это убережет вас от возможных неприятностей в дальнейшем.
![](114566_html_m30bb9170.gif)
В данном окне обратите внимание на строку "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.
![](114566_html_57260dde.png)
Рис 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, инструментарий веб- разработчика, статья, Виктор Волков, Иван Шумилов.
|