Вы не авторизированы! Логин:  Пароль:  Запомнить:    Зарегистрироваться
Забыл пароль
 
 
 

Установка, настройка и программирование MySQL

SVD programming - Программирование Delphi, HTML, PHP, CGI. Обзоры софта, ReactOS и многое другое...
 
Главная - Новости - Публикации - Файлы - Ссылки - Форум Обратная связь
 


Друзья сайта ::

Сайтом управляют ::

Друзья сайта ::
MySQL » Установка, настройка и программирование MySQL
Автор: Алексей Литвинюк / Дата: 18:54 05.04.2006
Комментарии: Комментарии (0)
Рейтинг статьи: 0
На сегодняшний день СУБД mysql является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД. Почему именно она? Одной из причин являются правила ее распространения — за нее не надо платить деньги и распространяется она вместе со своими исходными текстами. Однако многие могут возразить, ведь есть же postgresql, почему не она? Да, действительно postgresql также распространяется под лицензией *gnu gpl, но она не получила столь широкого распространения. Одна из причин — это заметная медлительность. Сегодня mysql особенно распространена на платформах linux и windows. Причем на последней встречается гораздо реже. В этой статье я хотел бы поделиться с читателем личным опытом установки, конфигурирования, администрирования и программирования СУБД mysql (в дальнейшем для простоты будет упоминаться просто mysql).

Для начало мне бы хотелось познакомить читателя с принципами работы СУБД, которые используют sql в качестве командного языка. sql — (structured query language, язык структурированных запросов) сердце любой современной СУБД. Он используется для создания/удаления баз данных, таблиц, для пополнения таблиц данными, для осуществления выборки данных. Эта тема заслуживает отдельной статьи, но тем, кому это действительно необходимо, я бы посоветовал прочесть книгу Мартина Грубера "Понимание sql". Исходя из этого, любая СУБД представляет собой программу-сервер, которая сидит в памяти компьютера и обслуживает tcp порт. В случае с mysql, номером порта будет являться число 3306. А клиентская программа, будь то cgi-приложение на perl либо полноценный программный продукт для предприятия на c, соединяется с СУБД по этому порту и посылает ему строчки на sql. Тот в свою очередь их интерпретирует, выполняя необходимые действия, и отсылает результаты запроса обратно клиенту. Таким не хитрым способом происходит общение сервера баз данных с клиентскими программами. Теперь, имея некоторое понятие о том, каким образом работают серверы баз данных, перейдем непосредственно к установке mysql.


Установка

mysql написан под десятки видов операционных систем. Это и freebsd, openbsd, macos, os/2, sunos, win9x/00/nt и linux. Мною использовался дистрибутив red hat linux 7.0. В силу своей простоты, данный дистрибутив не заставил мучаться с установкой и произвел ее самостоятельно на этапе установки самой ОС. Если вам аналогично повезло, то на этом этап установки для вас завершен, и вы можете смело переходить к настройке. Для многих встает вопрос, где взять дистрибутив mysql. Он может находиться на диске с linux в виде установочного модуля rpm либо в виде архива tgz(tar.gz). Если его там нет, то дистрибутив можно совершенно бесплатно скачать с официального сайта www.mysql.org. Для установки необходима версия ядра не ниже 2.0. Если вы скопировали архив *.tar.gz, то для установки скопируйте его в директорию, где вы хотите установить mysql, и выполните следующие действия:

1) Распакуйте архив, выполнив следующую команду

Код:
gunzip < mysql-version.tar.gz | tar xvf -


где, вместо version, будет версия вашего дистрибутива (к примеру, у меня 3.23.22-beta). В результате будет создана директория mysql-3.23.22-beta, где находятся файлы дистрибутива.

2) Перейдите в эту директорию.

Код:
cd mysql-3.23.22-beta


3) Подготовка к установке.

Код:
./configure --prefix=/usr/local/ mysql
make


В данном случае mysql будет установлен в директорию /usr/local/mysql. В случае фатального завершения следующих команд необходимо внимательно ознакомиться с выведенными ошибками. В случае чего можно обратиться к документации.

4) Непосредственно установка.

Код:
make install


5) Теперь необходимо создать так называемые grant таблицы. Для этого необходимо выполнить следующий скрипт:

Код:
scripts/mysql_install_db


Теперь можно удалить директорию, в которую вы распаковывали архив дистрибутива, после чего можете удостовериться, что mysql был проинсталлирован в указанную директорию (в нашем случае — это /usr/local/mysql). Для того чтобы запустить сервер СУБД mysql, следует выполнить скрип_f2 safe_mysqld, который находится в директории /usr/ local/mysql/bin.

На этом процесс инсталляции из архива tgz(tar.gz) можно считать выполненным.

В случае если вы устанавливаете mysql из установочного пакета rpm, то процесс инсталляции оказывается намного проще. Для установки пакетов rpm существует утилита rpm. Чтобы установить пакет, вам достаточно набрать следующую команду:

Код:
rpm -i mysql-3.23.22-beta.rpm


Теперь, когда вы выполнили эту команду, вы можете смело запускать safe_mysqld для первого старта mysql.

После того, как мы установили непосредственно mysql, необходимо установить также модули perl, чтобы perl мог работать с базами данных посредством технологии dbi/dbd. Об этой технологии будет рассказано чуть позже. Вам лишь необходимо скачать установочный пакет dbi с сайта www.cpan.org, а также установочный пакет драйвера dbd с сайта www.mysql.org и установить их таким же образом, как мы устанавливали mysql.

После установки всех вышеперечисленных пакетов смело можно переходить к настройке.


Настройка

Если установка была произведена корректно, то на данном этапе вы уже можете использовать mysql в своих целях. На пятом этапе, когда вы запускали скрипт scripts/mysql_install_db, у вас появилась новая база данных 'mysql'. В ней скрипт создал шесть таблиц: 'user', 'db', 'host', 'tables_priv', 'columns_priv' и 'func'. Эта база данных необходима для установления привилегий пользователям. По умолчанию сервер mysql использует номер порта 3306. Если данный порт у вас чем-то занят, то необходимо переопределить переменную mysql_tcp_port. Например, вот так:

Код:
mysql_tcp_port=3307
export mysql_tcp_port


Также можно поменять и другие параметры. В этом может помочь скрипт mysql_config. С его помощью можно менять, к примеру, директорию, где хранятся файлы баз данных, имя unix сокета, директорию временных файлов и пр. Чтобы проверить, правильно ли вы все сделали, запустите mysql, перейдя в директорию, где находятся исполняемые файлы, и выполните команду:

Код:
./safe_mysqld &


Теперь наберите './mysqlshow mysql'. Вы должны увидеть что-то похожее:

Код:
database: mysql

tables
columns_priv db func host tables_priv user


Если не было выдано никаких ошибок, то можете смело набирать './mysql' и по полученному приглашению набирать команды sql и не забывать ставить ";" после каждой команды.

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

Код:
create database gryadka;
create table main(a00 integer, a01 char(10));
insert into main values(1,'hello world!');
select * from main;


После ввода последней строки вы должны увидеть таблицу:

Код:
a00 a01
1 hello world!


Если так и произошло, то поздравляю, вы создали свою первую базу данных gryadka в СУБД mysql. В этой базе данных существует единственная таблица с именем main, которая, в свою очередь, содержит единственную запись. Настало время приступить к написанию программ, которые будут работать с установленной и настроенной вами СУБД mysql. Если по каким-либо причинам сервер mysql не запускается, то вам следует обратиться за помощью к справочному руководству.


Программирование

В этом разделе хотелось бы рассмотреть возможности языка perl для работы с mysql. Может быть, не честно обходить вниманием возможности языка c и его интерфейс взаимодействия с СУБД, однако сегодня mysql более широкое распространение получил на web-серверах. А perl как нельзя лучше других языков подходит для написания cgi-приложений. Многие могут возразить, что приложения на c работают намного быстрее. И это факт. Но у perl есть мощность, простота и кое-какая платформонезависимость. Ну, а его регулярные выражения и прочие синтаксические особенности несоизмеримо превозносят его над другими языками программирования.

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

Прикладные программы–>dbi –>dbd–>СУБД
Как уже упоминалось выше, dbi обеспечивает единый интерфейс взаимодействия с различными системами управления базами данных. А dbd связывает этот интерфейс непосредственно с конкретной СУБД. В нашем случае это mysql. Исходя из этого, понятно, что для того, чтобы наша программа могла общаться и работать с базой данных, необходимо подключить модуль dbi и драйвер dbd. Это выполняется следующими операторами:

Код:
use dbi;
use dbd::mysql;


Для того чтобы мы могли выполнять sql запросы к нашей базе данных, нам нужно установить логическое соединение с mysql. Это мы выполняем при помощи метода объекта dbi. При этом он возвращает объект (дескриптор) соединения, который мы будем использовать для непосредственного общения с базой данных.

Код:
$dbh = dbi->connect('dbi: mysql:dbname=gryadka;host=127.0.0.1;port=3306','','',0);


Вызывая метод connect, мы передаем ему некоторые параметры. Первый параметр определяет свойства соединения. Эта строка имеет следующую структуру:

Код:
"dbi:<имя dbd>:dbname= <имя базы данных>;host=<имя хоста>;port=<номер порта>"


Далее в методе connect определяются имя пользователя, пароль и флаги соединения. В нашем случае имя пользователя и пароль указывать нет необходимости, т.к. мы не создавали пользователей. Флаги передаются анонимным хэшем и в целом необходимости в них нет. Чтобы получить более подробную информацию, смотрите 'man dbi'. Существует два способа работы с базами данных mysql. Первый — так называемый механизм курсоров, а второй, соответственно, без использования таковых. Для начала рассмотрим механизм курсоров. Курсоры — это объекты perl, которые обеспечивают последовательный доступ к результатам запросов. Каждый курсор отвечает за закрепленный за ним запрос.

Код:
$cur = $dbh->prepare('select * from main;');


$cur — это курсор, который для начала следует выполнить, используя метод execute:

Код:
$cur->execute;


Теперь, после выполнения запроса, чтобы получить результат запроса, используем метод fetchrow_array. Он поочередно возвращает массив полей результативной виртуальной таблицы. К примеру, чтобы вывести на экран все данные, воспользуемся циклом while:

Код:
while (($a00, $a01) = $cur->fetchrow_array)
{
$i++;
print "record #$i: a00 = $a00, a01 = $a01. n";
}


Очень часто бывает необходимо подготовить запрос и после, при его выполнении, передавать ему различные данные. Это довольно просто решается при помощи механизма placeholders:

Код:
$cur = $dbh->prepare('insert into main values(?,?)')


где вопросительные знаки следует заменить на значения переменных, переданных в качестве параметров метода execute:

Код:
$a00 = 2;
$a01 = 'second record';
$cur->execute($a00, $a01);


Для того чтобы закрыть курсор, необходимо выполнить метод finish.

Код:
$cur->finish;


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

selectrow_array — возвращает одну строку запроса в виде массива;
selectall_arrayref — возвращает весь ответ сервера в виде массива, ссылка на массивы;
do — выполняет запрос, ничего не возвращая (очень удобно при работе с insert, update и пр.)


Например:

Код:
($a01) = $dbh->selectrow_ar-ray('select a01 from main where a00=1;');
# получаем значение $a01 равное 'hello world!'
$dbh->do('update set a01 = 'hello world' where a00 = 1;');
# изменяем значения поля a01 на 'hello world', там где a00=1


И, наконец, для того чтобы разорвать соединение с mysql, необходимо выполнить метод disconnect.


Код:
$dbh->disconnect;


Этого, пожалуй, хватит, чтобы писать довольно сложные программы для работы с базами данных.

И виртуальный магазин, и сервер знакомств, и всевозможные сайты, предоставляющие платные услуги, — все нуждаются в возможности обрабатывать и хранить большие объемы информации. mysql предоставляет всем эту возможность совершенно бесплатно. Это действительно одна из самых мощных, быстрых и надежных СУБД.

С вопросами и предложениями пишите мне. Постараюсь по мере сил и возможностей ответить.

Источник: http://www.ishodniki.ru/
Автор : Алексей Литвинюк
Комментарии: Комментарии (0)

Внимание!

Друзья сайта
Голосование ::
Случайные статьи ::
Добавления в форуме ::
Новые комментарии ::
Пользователи on-line ::
0 пользователь, 31 гостей
 
Страница создана за 0.013 секунд

SQL общее время: 0.005 секунд
SQL запросов всего: 15
Администрация сайта не несет ответственности за содержание рекламных материалов, а так же за информацию размещаемой посетителями. При использовании материалов сайта ссылка на svdpro.info обязательна.

Powered by LDU 802

Рейтинг@Mail.ru
Copyright © 2005 - 2011 «SVD Programming»
Версия сайта для коммуникаторов
Обратная связь - Карта сайта