четверг, 17 февраля 2011 г.

MySQL из исходников на Ubuntu


Материала в интернете предостаточно, поэтому этот пост сделан в виде шпаргалки.
Делаю его для себя, так что хотите читай, хотите нет. У меня нет цели набить посещения!!!

Сперва создаем/добавляем нового пользователя:
groupadd mysql
useradd -g mysql mysql

Если есть лишнее поправьте, но мне понадобилось все:
apt-get install make build-essential g++ ncurses-dev
apt-get install nscd
apt-get install c++

Выбираем исходники, качаем, и ...:
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.52.tar.gz/from/http://mirrors.dedipower.com/www.mysql.com/
mv ./index.html ./mysql-5.1.52.tar.gz
tar xzvf mysql-5.1.52.tar.gz
cd mysql-5.1.52

Подсмотреть дополнительные опции/настройки можно так:
./configure --help > configure-man
cat configure-man|less

Мне хватило этого:
./configure \
--sysconfdir=/NFS/mysql/conf \
--enable-assembler \
--with-mysqld-ldflags=-all-static \
--prefix=/NFS/mysql \
--localstatedir=/NFS/mysql/db \
--with-unix-socket-path=/NFS/mysql/socket/mysqld.sock

Не стал париться с флагами, ведь, насколько я осознаю, это всего лишь оптимизация сборки, которая на конечный результат не повлияет, а только на время, которое уйдет на компиляцию...

Полный путь к сокету должен быть следующим /var/run/mysqld/mysqld.sock
Некоторые люди не рекомендуют изменять путь к сокету, так как многие программы работаюшие с сокетами ожидают найти сокет именно по этому адресу.
Но я не послушался и сделал так, верно или нет, я не знаю:
mkdir -p /var/run/mysqld
ln -s /NFS/mysql/socket/mysqld.sock /var/run/mysqld/mysqld.sock

Продолжаем:
make
make install

Продолжаем, по прежнему находясь в папке с исходниками:
scripts/mysql_install_db

Тут обратите внимание на путь, который указали здесь:
--localstatedir=/NFS/mysql/db

И делаем так:
chown -R mysql /NFS/mysql/db
chgrp -R mysql /NFS/mysql

Манипуляция с конфигом, правим по необходимости:
mkdir -p /NFS/mysql/conf
cp support-files/my-medium.cnf /NFS/mysql/conf/my.cnf
ln -s /NFS/mysql/conf/my.cnf /etc/my.cnf

И запускаем!
/NFS/mysql/bin/mysqld_safe --user=mysql &

Проверяем:
ps ax|grep mysql

Мне этого было достаточно и у меня все заработало.

Обязательно устанавливаем пароль:
/NFS/mysql/bin/mysqladmin -u root password 'new-password'

Обратиие внимание, что команду выполняю с полным путем:
/NFS/mysql/bin/mysqladmin

Если доставляет дискомфорт, то либо симлинки, либо обьявить /NFS/mysql/bin в глобальной переменной.
Этим вопросом, я не задавался, да и не нужно оно мне))))

ЗЫ: Пока все, жду критики и пожеланий...

Комментариев нет:

Отправить комментарий