Глава №3.
Установка
Подобно большинству
сервисов, СУБД MySQL и mSQL работают как фоновые процессы, в Unix-системах называемые
также демонами. В данной главе обсуждается процесс их распаковки и установки.
Прежде чем
начать установку MySQL, нужно ответить на пару вопросов.
MySQL не требует для
своей работы прав суперпользователя, но при установке с правами root вы
даете каждому пользователю вашей системы доступ к одному экземпляру программы.
Если у вас нет прав суперпользователя, установку придется произвести в свой
исходный каталог. Однако, даже если вы установите MySQL как суперпользователь,
лучше запускать под другим логином. Благодаря этому данные вашей базы данных
можно защитить от других пользователей, установив для конкретных пользователей
MySQL права только чтения файлов данных. Кроме того, при компрометации защиты
базы данных нарушитель получает доступ только к учетной записи отдельного
пользователя MySQL, не имеющей привилегий за пределами базы данных.
Имеется много
откомпилированных двоичных пакетов MySQL. Это экономит время, но уменьшает возможности
настройки при установке. Для установки из исходного кода вам потребуется компилятор
С и другие инструменты разработчика. Если они у вас имеются, то преимущества
установки из исходного кода обычно перевешивают мелкие неудобства.
Эти
два вопроса взаимосвязаны. При установке из двоичного пакета вы должны быть
зарегистрированы как root. Установка из двоичного пакета использует некоторые
данные о путях, зашитые в двоичные файлы, что вынуждает вас регистрироваться
при установке как тот, кто создал прекомпилирован-ный пакет. MySQL позволяет
задать параметры командной строки, переопределяющие эти пути, но обычно меньше
хлопот доставляет установка из исходного кода.
В любом случае
сначала необходимо получить дистрибутив.
Таблица
3-1. Список серверов Интернета, с которых можно взять экземпляр исходного
кода или двоичных файлов MySQL
Азия |
||||
Корея |
KREONet |
|||
Япония |
Soft Agency |
|||
|
Nagoya Syouka
University |
|||
|
Nagoya Syouka
University |
|||
|
HappySize |
|||
|
HappySize |
|||
Сингапур |
HJC |
|||
|
HJC |
|||
Тайвань |
NCTU |
|||
|
TTN |
|||
Австралия |
||||
Австралия |
AARNet/Queensland |
|||
|
AARNet/Queensland |
|||
|
Blue Planet/Melbourne |
|||
|
Blue Planet/Melbourne |
|||
|
Tas |
|||
|
Tas |
|||
Африка |
||||
Южная Африка |
The Internet
Solution/ Johannesburg |
|||
Европа |
||||
Австрия |
University of
Technology/Vienna |
|||
|
University of
Technology/Vienna |
|||
Болгария |
Naturella |
|||
Дания |
Ake |
|||
|
SunSITE |
|||
|
SunSITE |
|||
Эстония |
Tradenet |
|||
Финляндия |
EUnet |
|||
Франция |
Minet |
|||
Германия |
Bonn University,
Bonn |
|||
|
Bonn University,
Bonn |
|||
|
Wolfenbuettel |
|||
|
Wolfenbuettel |
|||
|
Staufen |
|||
Греция |
NTUA, Athens |
|||
|
NTUA, Athens |
|||
Венгрия |
Xenia |
|||
|
Xenia |
|||
Израиль |
Netvision |
|||
Италия |
Teta Srl |
|||
Польша |
Sunsite |
|||
|
Sunsite |
|||
Португалия |
lerianet |
|||
|
lerianet |
|||
Россия |
DirectNet |
|||
|
IZHCOM |
|||
|
IZHCOM |
|||
Румыния |
Bucharest |
|||
|
Bucharest |
|||
|
Timisoara |
|||
|
Timisoara |
|||
Швеция |
Sunet |
|||
|
Sunet |
|||
|
тcх |
|||
|
тcх |
|||
|
тcх |
http://www.mysql.com
(Primary Site) |
||
|
тcх |
ftp://ftp.mysql.com
(Primary Site) |
||
Англия |
Omnipotent/UK |
|||
|
Omnipotent/UK |
|||
|
PHG/UK |
|||
|
PliG/UK |
|||
Украина |
РАСО |
|||
|
РАСО |
|||
Северная
Америка |
||||
Канада |
Tryc |
|||
США |
Circle Net/North
Carolina |
|||
|
DIGEX |
|||
|
Gina net/Florida |
|||
|
Hurricane Electric/San
Jose |
|||
|
Netcasting/West
Coast |
|||
|
Phoenix |
|||
|
pingzero/Los
Angeles |
|||
Южная Америка |
||||
Чили |
Amerikanclaris |
|||
|
vision |
|||
Подключившись
к серверу FTP, войдите в каталог Downloads. В нем будут перечислены несколько
версий MySQL, например:
MySQL-3.21
MySQL-3.22
MySQL-3.23
Самый высокий
номер версии соответствует нестабильному выпуску, в котором производится добавление
и проверка новых характеристик. Отдельные подверсии его будут иметь пометки
'alpha', 'beta' или 'gamma'. Предыдущая версия является текущей стабильной версией.
Эта версия тщательно проверена и считается свободной от ошибок. Доступны также
более ранние архивные версии.
Если разрабатываемая
версия находится на этапе 'alpha', вам определенно следует придерживаться стабильной
версии, если только вы не любитель острых ощущений. В случае когда разрабатываемая
версия находится на стадии 'beta', возможно, следует выбрать предыдущую версию,
если только в новой версии нет крайне необходимых для вас характеристик или
устойчивость системы, на которой вы работаете, не очень критична. С другой стороны,
версией 'gamma' можно уверенно пользоваться при отсутствии в ней известных конфликтов
с вашей системой.
Вы можете
точно проверить, на какой стадии находится конкретная версия MySQL, перейдя
в ее каталог. Например, каталог MySQL-3.22 может выглядеть следующим
образом:
mysql-3.22.19-beta-sgi-irix6,4-mip.tgz
mysql-3.22.21a-beta-ibm-aix4.2.1.0-rs6000.tgz
mysql-3.22.31-pc-linux-gnu-i586.tgz
mysql-3.22.33-sun-solaris2.6-sparc.tgz
mysql-3.22.33.tar.gz
Файлы, имена
которых включают названия машин и операционных систем, являются двоичными версиями
для этих систем. Если название машины не указано, как в последней строке, то
это исходный код. Если к файлу не присоединена метка 'alpha', 'beta' или 'gamma'
- это стабильная версия. Что касается двух последних файлов списка, то первый
- откомпилированная версия для Sun Solaris на машине Spare, а последний - исходный
код. Прочие, более старые версии существуют, поскольку у команды разработчиков
не всегда есть время и возможность откомпилировать каждую подверсию MySQL на
каждой существующей операционной системе и аппаратной конфигурации. В действительности,
большая часть прекомпилированных версий предоставлена обычными пользователями,
которым удалось успешно откомпилировать последнюю версию на своей системе.
Зная это,
вы можете теперь выбрать версию MySQL, которую хотите использовать, и загрузить
исходный код, если собираетесь компилировать MySQL, или двоичный дистрибутив
для вашей машины, если он существует. Когда отсутствует двоичный дистрибутив,
точно соответствующий вашей конфигурации, проверьте, нет ли его для слегка отличной
конфигурации. Например, mysql-3.22.32a-ibm-aix4.2.1.0-powerpc.tgz
может работать также на версии AIX 4.1.4 на том же типе машин. Если вы не
можете таким образом подобрать работающую версию, попробуйте поискать в более
старых версиях MySQL. Если и это не удастся, придется компилировать исходный
код. В случае успешной компиляции и запуска MySQL можно предоставить откомпилированные
двоичные файлы команде разработчиков MySQL для включения в архив.
Установка
из исходного кода
Загрузив
дистрибутив с исходным кодом, распакуйте архив с помощью команды:
gunzip - с mysql-x.xx.xx.tar.gz
| tar xvf -
где mysql-x.
xx. xx . tar. gz - имя загруженного вами файла. В результате в рабочем
каталоге будет создан каталог mysql-x. xx. xx. Перейдите в него. Запустите сценарий
configure в рабочем каталоге. Вызовите его как . /configure, чтобы случайно
не запустить программу с тем же именем, находящуюся где-либо в другом месте.
Во многих случаях установка прекрасно проходит без задания каких-либо параметров,
но при возникновении трудностей можно использовать многочисленные параметры,
информацию о которых можно вывести на экран, задав ключ -help. Вот наиболее
употребительные:
--without-server
В результате
компилируются все имеющиеся клиенты MySQL, но не сервер.
-prefix
Устанавливается
каталог инсталляции, отличный от каталога по умолчанию (/usr/ local/ ).
-with-low-memory
Эта опция
запрещает компилятору использовать некоторые виды оптимизации, требующие много
памяти при компиляции. С ее помощью устраняется большинство ошибок, связанных
с нехваткой памяти при компиляции.
-localstatedir
Используется
для назначения каталога для файлов базы данных, отличающегося от принятого по
умолчанию (/usr/local/var).
-with-charset
Используется
для выбора набора символов, отличного от принятого по умолчанию (lati.nl). На
момент написания книги доступны наборы символов big5, danish, cp1251, cp1257,
croat, czech, dec8, dos,
euc_kr, germanl,
Hebrew, hp8, hungarian, koi8_ru, koi8_ukr, latin1, Iatin2, swe7, usa7, win1251,
win1251u, kr, ujis, sjis, tis620.
После завершения
выполнения сценария configure запустите make в рабочем каталоге. В результате
будет произведена полная компиляция.
По завершении
компиляции команда make install установит все в нужное место.
Если вы впервые
устанавливаете на данной машине MySQL или все файлы баз данных MySQL были удалены
после предыдущей инсталляции, выполните следующую команду, чтобы создать структуру
баз данных и административные таблицы:
./scripts/mysql_install_db
При этом
запустится также демон сервера. Чтобы убедиться в том, что он работает, перейдите
в инсталляционный каталог (по умолчанию / usr/local/) и введите команду:
./bin/mysqladmin version
На экран будет
выведено что-то, близкое к следующему:
mysqladmin Ver
7.11 Distrib 3.22.23b, for linux on 1586
TCX Datakonsult
AB, by Monty
Server version
3.22.23b-debug
Protocol version
10
Connection Localhost
via UNIX socket
UNIX socket
/tmp/mysql.sock
Uptime: 6 sec
Threads: 1 Questions:
1 Slow queries: 0 Opens: 6 Flush tables: 1 Open
tables: 2 Memory
in use: 1093K Max memory used: 1093K
Итак, последовательность
шагов установки такова:
gzip - с mysql-x.xx.
xx. tar. gz | tar xvf -
cd mysql-x.xx.xx
./configure
make
make install
./scripts/mysql_install_db
./bin/mysqladmin
version
Установка
двоичного дистрибутива
Загрузив
двоичный дистрибутив, вы должны выбрать каталог для установки файлов MySQL.
Чаще всего выбирается /usr/local/mysql, но это в значительной мере зависит
от потребностей ваших пользователей, и имеющихся у вас прав доступа.
Перейдите
в каталог на уровень выше, чем тот, в котором вы хотите разместить дистрибутив
MySQL. Например, если вы хотите использовать
/usr/local/mysql, перейдите в /usr/local. Для распаковки дистрибутива
выполните команду:
gunzip -
с /tmp/mysql-x.xx.xx-fflymac/line. tgz | tar xvf -
Здесь /tmp
- имя каталога, в который вы загрузили дистрибутив MySQL, a mysql-x.xx.xx-mymachine.tgz
- имя загруженного файла.
В результате
в текущем каталоге будет создан каталог mysql-x.xx.xx mysql. Если вы
хотите, чтобы файлы были просто в каталоге mysql, создайте связь:
In - s mysql-x.xx.xx
mysql
Теперь проверьте,
содержит ли двоичный пакет таблицы назначения прав доступа. Перейдите в каталог
mysql/mysql. Если он не существует или пуст, вам придется создать таблицы
самому. Вернитесь назад, на один уровень, в главный каталог установки mysql
и выполните команду:
scripts/mysql_install_db
Эту команду
нужно выполнить только один раз. Для запуска демона MySQL введите:
bin/safe_mysqld --log &
Чтобы убедиться,
что демон правильно работает, введите:
bin/mysqladmin version
Ответ должен
быть примерно таким:
Mysqladmin Ver
6.3 Distrib 3.21.33, for sun-solaris2.6 on spare
TCX Datakonsult
AB, by Monty
Server version
3.21.17-alpha
Protocol version
10
Connection Localhost
via UNIX socket
TCP Port 3333
UNIX socket
/tmp/mysql.sock
Uptime: 13 sec
Running threads:
1 Questions: 20 Reloads: 2 Open Tables: 3
Первым шагом
в установке mSQL является получение дистрибутива исходного кода. На момент написания
этой книги самые новые версии mSQL распределялись только с веб-страницы Hughes
Technology на http://www.hughes.com.avl.
Автор mSQL предпочел официально не распространять двоичные дистрибутивы
mSQL. Если на вашей машине нет компилятора С, то вам следует либо установить
его, либо скомпилировать на такой же машине с той же операционной системой и
перенести результат.
Полученный
дистрибутив с исходным кодом mSQL распакуйте командой:
gunzip - с msql-2.0.4.1.tar.gz
| tar xvf -
В результате
в рабочем каталоге будет образован каталог с именем msq 1-2.0.4.1. Перейдите
в него.
Создайте
на своей машине инсталляционный каталог командой:
make target
Теперь перейдите
в каталог targets. В нем должен быть новый каталог с названием вашей
операционной системы и платформы, например, Solaris-2.6-Spare или Linux-2.0.
33-1386. Перейдите в этот каталог.
В рабочем
каталоге запустите сценарий setup. Лучше запустите его как . /setup, чтобы командный
процессор не запустил программу setup из какого-нибудь другого каталога. Сценарий
сконфигурирует исходный код для компиляции. После выполнения сценария рассмотрите
файл site.mm и измените необходимые параметры для настройки своей локальной
установки. В частности, вы, возможно, захотите изменить переменную INST_DIR,
задающую каталог, в который устанавливается mSQL. Если конфигурация вас устраивает,
для компиляции mSQL выполните команду:
make all
После компиляции
установите mSQL в выбранный вами каталог с помощью команды:
make install
Вся последовательность
шагов при инсталляции выглядит следующим образом:
gzip - с msql-x.x.x.tar.gz
tar xvf -
cd msql-x.x.x
make target
cd targets/myOS-mymachine
./setup
make all
make install