Разрабатывая корпоративный сайт, в определенный момент времени начинаешь понимать, что сочетания Apache+Perl+Php недостаточно для полноценного веб-сервера. Особенно это становится заметно, когда речь заходит о создании и поддержке большого хранилища данных. Вот здесь нам на помощь и приходит база данных MySQL. О том, что это такое, для чего оно нужно и как его установить, поговорим в данной статье.
Для начала давайте уясним, зачем вообще нужны базы данных.
Многие начинающие веб-программисты скажут, что намного проще создать базу данных в виде текстового файла с разделителями, и никаких проблем. Это действительно так, но лишь в том случае, если вам нужно создать очень простенькое приложение. Если же создавать что-либо более глобальное, например полнофункциональную гостевую книгу, чат, форум, систему голосования, то без “настоящей” базы данных никак не обойтись.
При использовании базы данных перед вами открывается куча ранее недоступных (или очень труднодоступных) возможностей. Например, вы сможете показывать пользователю только те данные, которые он сам захотел видеть, либо предоставлять какие-либо оперативные данные (курсы валют, сводку погоды, цены на какие либо товары/услуги и т.д.). Для всего этого вам и нужно постоянное структурированное хранилище данных. Есть множество различных видов баз данных, но в нашем случае мы будим рассматривать MySQL. Почему именно MySQL? Потому что она является небольшим, компактным и простым в использовании сервером баз данных, идеальным для приложений малого и среднего размера. Стоит отметить и тот факт, что MySQL доступна на ряде платформ Unix, Windows NT/2000, 95/98. Кроме того, отметим, что большинству интернет-приложений, которые можно скачать на различных бесплатных скриптовых серверах, необходима именно MySQL. Например, мне так и не удалось найти полнофункциональный форум, который бы не использовал базу данных.
Убедившись необходимости использования MySQL, давайте поговорим о том, где ее взять и как настроить для работы на локальном компьютере. (Дистрибутив сервера и клиента MySQL можно найти в разделе Download)
Скачивайте версию под Windows(win_32), так как в этой статье будет рассматриваться именно windows-версия. Ориентировочный размер файла 10 Мб. После того как вы скачали zip файл, займемся его установкой. Не пугайтесь, если какие-либо настройки в вашем файле будут отличаться от описанных здесь. Все описанное здесь было проверено на версии Ver 10.11 Distrib 3.23.23-beta for win95/98(i32).
Установка
Процесс установки довольно прост как для пользователей, ранее работавших с подобными программами, так и для тех, кто устанавливает и конфигурирует сервер впервые. Для последних следует сделать небольшие пояснения. Только что скачанный zip архив необходимо разархивировать в отдельную папку. Затем следует запустить файл setup.exe. Появится стандартное окно инсталляции. Здесь вы должны внимательно читать все сообщения программы инсталляции и аккуратно жать кнопку “далее”, до тех пор, пока не придется выбирать директорию, куда следует установить сам MySQL сервер и где будут находиться базы. Здесь следует оговориться, что если вы измените папку, которая стояла по умолчанию, то вам придется впоследствии настраивать отдельные переменные в файле конфигурации сервера, что не является препятствием для “профи”, но серьезная проблема для начинающих пользователей. В отношении домашнего сервера, нет смысла изменять путь папки. Разве только для удобства можно поставить поближе к Apache. На реальном сервера пути установки выглядят примерно так: /usr/htdocs — основная папка с документами, /usr/php — здесь живет php, /usr/bin/perl — интерпретатор perl, и, наконец, /usr/web/databases/mysql. Все эти пути условные, и в каждом конкретном случае могут отличаться. У меня на компьютере структура папок организована несколько иначе: основные документы /web/htdocs/ (C:webhtdocs), php — /web/php/ (C:webphp), perl — /web/bin/perl(C:webinperl), mysql — /web/mysql/ (С:webmysql). Но для простоты и удобства настройки все же поставим MySQL в папку по умолчанию, т.е. c:mysql. Это позволит нам в дальнейшем сразу начать работу, без каких-либо дополнительных настроек. Больше никаких существенных изменений в процессе установки нам делать не нужно, просто жмем везде кнопку “далее” и ждем, пока программа установки сделает свое “черное” дело:). После установки мы сможем наблюдать примерно следующую иерархию папок:
C:mysql — корневая директория.
|_bench — контрольные замеры и тест “crash-me”.
|_bin — клиентские программы и сценарии.
|_data — именно здесь будут находиться сами базы данных.
|_docs — различная информация: копирайты, лицензии, краткий мануал и т.д.
|_examples — несколько примеров использования базы (см. мануал).
|_include — файлы заголовков.
|_lib — различные библиотеки.
|_scripts — несколько Perl-скриптов. Подробнее о них в readme’шке.
|_share — файлы сообщений об ошибках.
Все вроде бы все установили. Сразу после установки у нас есть всего один суперпользователь root, обладающий всеми правами администратора, и пароль в виде пустой строки. В принципе, на этом этапе у нас достаточно технических возможностей для начала наших тестов и разработки серьезных приложений.
Обычно в приложениях, использующих MySQL, присутствуют три стандартные переменные, которые отвечают за доступ к самой базе данных:
$userName = "root"; -имя пользователя, которому разрешен доступ к базе.
$password = ""; пароль, по умолчанию он отсутствует.
$hostName = "localhost"; имя хоста, на котором “живет” база данных.
Настроив эти переменные, вы сможете устанавливать себе всяческие навороченные форумы, чаты гостевые книги и т.д. Как и куда правильно установить, обычно пишется в readme’шниках к самим программам, так как такового общего шаблона нет.
Теперь давайте попробуем запустить только что установленный MySQL сервер и протестировать его работоспособность. Есть несколько вариантов запуска. Рассмотрим некоторые из них.
Вариант 1 Запуск из командной строки
Для этого в Win 95/98 запускаем “Сеанс MS-DOS” и прописываем несколько команд, ориентируясь на то, что вы установили MySQL на C:mysql:
cd mysqlin
Далее пишем mysql --standalone. Если после этого не появится никаких сообщений об ошибках, значит сервер успешно работает в фоновом режиме.
Вход в режиме администрирования осуществляется несколько иначе:
cd mysqlin —u root(имя пользователя) mysql
После этого должен появиться следующий текст:
Welcome to the MySQL monitor.Commands end with; or g.
Your MySQL connection id is 1 to server version: 3.23.19
Type 'help' for help.
mysql>
Теперь вы можете назначить пользователю root пароль (если хотите, конечно), для этого в той же командной строке пишем:
mysql> UPDATE user SET Password=PASSWORD('новый_пароль) WHERE user='root';
mysql>quit
mysqlin>mysqladmin -u root reload
После этого мы завершаем работу сервера командой quit и перезагружаем его reload
Теперь попробуем войти снова:
mysqlinmysql -u root -p mysql
Enter password: ********(пароль)
Если появилось приглашение ввести пароль (см. выше), значит база работает нормально, но для пущей уверенности возьмем небольшое бесплатное php приложение, которое выведет список всех баз данных на сервере. Для этого создаем новый файл в директории, где у вас находятся все Html/phtml (и т.д.) документы и называем его, например, check_mysql.php, и пишем в нем следующий код:
$password = "new_password"; //если пароль не задан, то имеет значение пустой строки
$hostName = "localhost"; //хост, на котором находится база MySQL
//Соединение с базой данных MySQL
if (!($link = mysql_connect($hostName, $userName, $password))) {
printf(" Произошла ошибка при соединении с базой данных %s ", $hostName);
exit(); }
// Получение списка баз данных, находящихся на сервере
if (!($listOfDbs = mysql_list_dbs($link))) {
printf(" Ошибка в mysql_list_dbs, ошибка %s ", mysql_error($link));
Сохраняем все это дело, запускаем (если у вас еще не запущен) MySQL сервер, Apache сревер и вызываем этот файл http://localhost/check_mysql.php.
В результате его выполнения мы получим список баз данных, находящихся на сервере. По умолчанию их всего две: test и Mysql. Если при вызове произойдет ошибка, то возможны следующие причины:
Вы забыли указать программе пароль/имя пользователя. Проверьте соответствие паролей. Напоминаю, что по умолчанию пароль не установлен.
Возможно, не запущен сам MySQL сервер. Запустите сервер.
Возможно, вы допустили ошибку при вводе самого кода.
Вернемся к вариантам запуска сервера.
Вариант 2. Запуск с помощью файла
При подготовке данного материала я наткнулся на довольно хороший вариант одновременного запуска как сервера MySQL, так и сервера Apache. Для этого нам нужно будет создать файл, например, start.bat, в который запишем такие строки:
— @echo off
— "C: mysqlinmysqld"
start /m "C:web Apache" (у меня Apache находится здесь, у вас может быть иначе)
В той же папке создаем файл shutdown.bat, который будет завершать работу Apache и MySQL:
— @echo off
— "C:webApache" -k shutdown
"C: mysqlinmysqladmin" -u root shutdown
Довольно удобно назначит этим файлам “горячие клавиши”, для быстрого вызова. Например, CTRL+S и CTRL+D соответственно (Start/shutdown). Но у меня под W2k этот способ не работал.
Вариант 3. Запуск с помощью winmysqladmin
Если вы не хотите ничего конфигурировать, то это способ является оптимальным, так как запуск осуществляется в виде отдельного приложения. В нем вы можете видеть полную статистику работы сервера, общие настройки, подключения к базе данных различных пользователей, статистику ошибок, а самое главное — вы одним кликом мыши можете создавать/удалять новые базы, что очень и очень удобно. Кроме перечисленного, имеется еще куча статистической информации, которая может оказаться весьма полезной при тестировании того или иного приложения.
Заключение
В данной статье мы рассмотрели лишь основные моменты установки и конфигурирования, но этого уже достаточно, для того чтобы вы начали работать с базой данных MySQL. На самом деле осталось еще очень много нераскрытых вопросов, среди них добавление пользователей, установление прав и т.д. Если вас заинтересовала более детальная информация, начните с сайта www.mysql.ru, или с www.mysql.com.