MySQL
Прежде чем начать установку MySQL, нужно ответить на пару вопросов.
MySQL не требует для своей работы прав суперпользователя, но при установке с правами root вы даете каждому пользователю вашей системы доступ к одному экземпляру программы. Если у вас нет прав суперпользователя, установку придется произвести в свой исходный каталог. Однако, даже если вы установите MySQL как суперпользователь, лучше запускать под другим логином. Благодаря этому данные вашей базы данных можно защитить от других пользователей, установив для конкретных пользователей MySQL права только чтения файлов данных. Кроме того, при компрометации защиты базы данных нарушитель получает доступ только к учетной записи отдельного пользователя MySQL, не имеющей привилегий за пределами базы данных.
Имеется много откомпилированных двоичных пакетов MySQL. Это экономит время, но уменьшает возможности настройки при установке. Для установки из исходного кода вам потребуется компилятор С и другие инструменты разработчика. Если они у вас имеются, то преимущества установки из исходного кода обычно перевешивают мелкие неудобства.

В любом случае сначала необходимо получить дистрибутив.
Таблица 3-1. Список серверов Интернета, с которых можно взять экземпляр исходного кода или двоичных файлов MySQL
Азия | |||||||
Корея |
KREONet |
http://linux.kreonet.re.hr/mysql/ | |||||
Япония |
Soft Agency |
http://www.softagency.co.jp/MySQL/ | |||||
|
Nagoya Syouka University |
http://mirror.nucba.ac.jp/mirror/mysql/ | |||||
|
Nagoya Syouka University |
ftp://mirror.nucba.ac.jp/mirror/ mysql/ | |||||
|
HappySize |
http://www.happysize.co.jp/mysql/ | |||||
|
HappySize |
ftp://ftp.happysize.co.jp/pub/mysql/ | |||||
Сингапур |
HJC |
http://mysql.hjc.edu.sg/ | |||||
|
HJC |
ftp://ftp.hjc.edu.sg/mysql/ | |||||
Тайвань |
NCTU |
http://mysql.taconet.com.tw/ | |||||
|
TTN |
http://mysql.ttn.net | |||||
Австралия | |||||||
Австралия |
AARNet/Queensland |
http://mirror.aarnet.edu.au/mysql/ | |||||
|
AARNet/Queensland |
ftp://mirror.aarnet.edu.au/pub/ mysql/ | |||||
|
Blue Planet/Melbourne |
http://mysql.bluep.com | |||||
|
Blue Planet/Melbourne |
ftp://mysql.bluep.com/pub/mirrorl/ mysql/ | |||||
|
Tas |
http://ftp.tas.gov.au/mysql/ | |||||
|
Tas |
ftp://ftp.tas.gov.au/pub/mysql/ | |||||
Африка | |||||||
Южная Африка |
The Internet Solution/ Johannesburg |
ftp://ftp.is.co.za/linux/mysql/ | |||||
Европа |
||||
Австрия |
University of Technology/Vienna |
http://gd.tuwien.ac.at/db/mysql/ |
||
University of Technology/Vienna |
ftp://gd.tuwien.ac.at/db/mysql/ |
|||
Болгария |
Naturella |
ftp://ftp.ntrl.net/pub/mirror/mysql/ |
||
Дания |
Ake |
http://mysql.ake.dk |
||
SunSITE |
http://sunsite.auc.dk/mysql/ |
|||
SunSITE |
ftp://sunsite.auc.dk/pub/databases/ mysql/ |
|||
Эстония |
Tradenet |
http://mysql.tradenet.ee |
||
Финляндия |
EUnet |
http://mysql.eunet.fi |
||
Франция |
Minet |
http://www.minet.net/devel/mysql/ |
||
Германия |
Bonn University, Bonn |
http://www.wipol.uni-bonn.de/ MySQL/ |
||
Bonn University, Bonn |
http://www.wipol.uni-bonn.de/ MySQL/ |
|||
Wolfenbuettel |
http://www.fh-wolfenbuettel.de/ftp/ pub/database/ mysql/ |
|||
Wolfenbuettel |
ftp://ftp.fh-wolfenbuettel.de/pub/ database/ mysql/ |
|||
Staufen |
http://mysql.staufen.de |
|||
Греция |
NTUA, Athens |
http://www.ntua.gr/mysql/ |
||
NTUA, Athens |
ftp://ftp.ntua.gr/pub/databases/ |
|||
Венгрия |
Xenia |
http://xenia.sote.hu/ftp/mirrors/ |
||
Xenia |
ftp://xenia.sote.hu/pub/mirrors/ |
|||
Израиль |
Netvision |
http://mysql.netvision.net.il |
||
Италия |
Teta Srl |
http://www.teta.it/mysql/ |
||
Польша |
Sunsite |
http://sunsite.icm.edu.pl/mysql/ |
||
Sunsite |
ftp://sunsite.icm.edu.pl/pub/unix/ |
|||
Португалия |
lerianet |
http://mysql.leirianet.pt |
||
lerianet |
ftp://ftp.leirianet.pt/pub/mysql/ |
|||
Россия |
DirectNet |
http://mysql.directnet.ru |
||
IZHCOM |
http://mysql.udm.net |
|||
IZHCOM |
http://mysql.udm.net |
|||
Румыния |
Bucharest |
http://www.lbi.ro/MySQL/ |
||
Bucharest |
ftp://ftp.lbi.ro/mirrors/ftp.tcx.se |
|||
Timisoara |
http://www.dnttm.ro/mysql/ |
|||
Timisoara |
ftp://ftp.dnttm.ro/pub/mysql |
|||
Швеция |
Sunet |
http://ftp.sunet.se/pub/unix/ databases/ relational/ my sql/ |
||
Sunet |
ftp://ftp.dnttm.ro/pub/mysql |
|||
тcх |
http://www.tcx.se |
|||
тcх |
ftp://www.tcx.se |
|||
тcх |
http://www.mysql.com (Primary Site) |
|||
тcх |
ftp://ftp.mysql.com (Primary Site) |
|||
Англия |
Omnipotent/UK |
http://mysql.omnipotent.net |
||
Omnipotent/UK |
ftp://mysql.omnipotent.net |
|||
PHG/UK |
http://ftp.plig.org/pub/mysql/ |
|||
PliG/UK |
ftp://ftp.plig.org/pub/mysql/ |
|||
Украина |
РАСО |
http://mysql.paco.net.ua |
||
РАСО |
ftp://mysql.paco.net.ua |
|||
Северная Америка |
||||
Канада |
Tryc |
http://web.tryc.on.ca/mysql/ |
||
США |
Circle Net/North Carolina |
http://www.mysql.net |
||
DIGEX |
ftp://ftp.digex.net/pub/database/ |
|||
Gina net/Florida |
http://www.gina.net/mysql/ |
|||
Hurricane Electric/San Jose |
http://mysql.he.net |
|||
Netcasting/West Coast |
ftp://ftp.netcasting.net/pub/mysql/ |
|||
Phoenix |
http://phoenix.acs.ttu.edu/mysql/ |
|||
pingzero/Los Angeles |
http://mysql.pingzero.net |
|||
Южная Америка |
||||
Чили |
Amerikanclaris |
http://www.labs.amerikanclaris.cl/ |
||
vision |
http://mysql.vision.cl |
|||
Подключившись к серверу 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