В интернете полно документации по установке известного mysql на различные *nix платформы. Я решил описать, как это сделать под Solaris. В дистрибутив Solaris 10 (release11/06) уже включены следующие пакеты mysql:
system SUNWmysqlr mysql - MySQL Database Management System(root component)
system SUNWmysqlt mysql - MySQL Database Management System(test component)
system SUNWmysqlu mysql - MySQL Database Management System (usr component)
Версия установленного mysql - Ver 12.22 Distrib 4.0.24, for sun-solaris2.10 (sparc)
Можно просто настроить данный пакет и использовать, мне необходимы были возможности, которые реализованы в 5-ой версии. Поэтому решил попробовать установить стабильную текущую версию 5.0.41. Для этого с начала я удалил существующие пакеты.
#pkgrm SUNWmysqlr SUNWmysqlt SUNWmysqlu
Проинсталлировать можно одним из трёх способом, первый скачать инсталляционный пакет mysql-5.0.41-solaris10-sparc-64bit.pkg и установить его стандартным способом распаковать и выполнить pkgadd. Меня не устроило в данном пакете размещение файлов. Второй способ - это скачать бинарные, скомпилированные под Solaris, файлы mysql-5.0.41-solaris10-sparc-64bit.tar.gz. Разархивировать их, установить в необходимое место на системе. Предварительно создав группу и пользователя mysql.
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /opt/mysql
shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
Третий способ, это скомпилировать исходники самому. Т.к. на данном сервере у меня установлена SunStudio 12 , я решил скомпилировать mysql с помощью cc и воспользоваться оптимизацией, которую рекомендует Sun, при сборке mysql. Скачиваем исходники mysql-5.0.41.tar.gz раскрываем в каталог из которого будете инсталлировать. В файле INSTALL-SOURCE много полезной информации. Там я создал файл my.mysql.build.
#touch my.mysql.build
#chmod +x my.mysql.build
Далее редактируем файл my.mysql.build в нём задаём параметры для сборки, часть которых я взял с сайта sun.com, а часть задал самостоятельно для своих целей. Вот что в итоге у меня получилось. Почему я оперирую с файлом, потому что удобно задавать новые параметры сборки.
#!/bin/bash
CC=cc CFLAGS="-fast -mt -fsimple=1 -ftrap=%none -xbuiltin=%all \
-xlibmil -xlibmopt -xstrconst -xarch=v9" \
CXX=CC CXXFLAGS="-fast -noex -mt -fsimple=1 -ftrap=%none -xbuiltin=%all \
-xlibmil -xlibmopt -xarch=v9" \
./configure --prefix=/opt/mysql --localstatedir=/opt/db/mysql/ --libexecdir=/opt/mysql/bin \
--with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile \
--with-named-z-libs=no --with-big-tables --with-server-suffix=-standard \
--with-mysqld-user=mysql \
--disable-shared --with-readline --with-charset=utf8 \
--with-archive-storage-engine –with-innodb
Далее запускаем ./my.mysql.build и если всё прошло без ошибок, у меня именно так и получилось. Запускаем процесс сборки и инсталляции.
#make
#make install
После этого имеем пакет скомпилированный под собственные нужны.
На всякий случай проделываю то, что описывал в предыдущем методе.
shell> cd /opt/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> cd /opt/db
shell> chown -R mysql mysql
shell> /opt/mysql/bin/mysqld_safe --user=mysql &
База запускается и работает. Не забудьте сменить root пароль. Формируем файл конфигурации согласно сервера на котором будет использоваться mysql .
#cp /opt/mysql/support-files/my-huge.cnf /opt/mysql/etc/my.cnf
И потом делаем, чтобы mysql запускался из svc. Вариант моего
mysql.xml и файл запуска
mysql можно скачать с данного ресурса. Далее по шаблону
#cp mysql.xml /var/svc/manifest/application/database
#cp mysql.server /etc/init.d/mysql
#svccfg validate /var/svc/manifest/application/database/mysql.xml
#svccfg import /var/svc/manifest/application/database/mysql.xml
#svcadm enable mysql
Ну вот вроде и всё. Если есть вопросы спрашивайте. В следующей статье постараюсь описать результаты тестов различных методов инсталляции.