|
MySQL
Ты знаешь, что такое SQL и реляционные базы данных?
Даже если и не знаешь, то я тебе об этом не буду рассказывать. А поведаю об установке простой, небольшой, но очень быстрой и функциональной реляционной СУБД MySQL, которую мы будем в дальнейшем использовать с различным программным обеспечением.
Забираем исходные коды последней версии MySQL (на момент написания - версия 4.1.10a) с сайта http://dev.mysql.com.
$ cd /home/admin/install
$ links dev.mysql.com
После этого нам осталось развернуть исходники и скомпилировать MySQL. Но... Из соображений защиты мы будем запускать наш сервер от пользователя mysql, принадлежащего группе mysql. Поэтому сначала создадим группу и пользователя.
$ su
# pw groupadd mysql
# pw useradd mysql -c "MySQL Daemon" -d /nonexistent -g mysql -s /sbin/nologin
# exit
А теперь займемся непосредственно конфигурированием и компиляцией.
Каждый раз набирать длинные строки опций для скрипта конфигурации - неблагодарное дело. И потом при обновлении ПО попробуй вспомнить, какие опции ты задавал. Поэтому мы создадим файл config.sh, в который запишем нашу командную строку.
$ tar xzfv mysql-4.1.10a
$ cd mysql-4.1.10a
$ ee config.sh
Содержание файла приведено ниже:
CFLAGS="-O6 -fomit-frame-pointer" \
CXX=gcc \
CXXFLAGS="-O6 -fomit-frame-pointer \
-felide-constructors -fno-exceptions -fno-rtti" \
./configure \
--enable-assembler \
--with-mysqld-user=mysql \
--with-mysqld-ldflags="-all-static" \
--with-client-ldflags="-all-static" \
--with-unix-socket-path=/tmp/mysql.sock \
--prefix=/usr/local/mysql
|
После этого скомпилируем и установим MySQL.
$ sh config.sh
$ make
$ su
# make install
# strip /usr/local/mysql/libexec/mysql*
# scripts/mysql_install_db
# chown -R root:mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# cp support-files/my-medium.cnf /etc/my.cnf
# chown root:wheel /etc/my.cnf
# chmod 644 /etc/my.cnf
Добавим в /etc/rc.conf при помощи редактора ee или команды cat >> следующую строку: ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib /usr/local/mysql/lib/mysql"
Теперь сделаем так, чтобы MySQL запускался при загрузке нашего сервера.
# ln -s /usr/local/mysql/share/mysql/mysql.server /usr/local/etc/rc.d/mysql.sh
Запустим нашу СУБД.
# /usr/local/etc/rc.d/mysql.sh start
# exit
Попробуем подключиться к нашей базе
$ /usr/local/mysql/bin/mysql -u root mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3760 to server version: 4.1.10a-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
|
Красота. Теперь займемся защитой нашего сервера MySQL. Изменим пароль администраторского аккаунта, который по умолчанию в MySQL является пустым.
mysql> set password for root@localhost=password('new_password');
mysql> exit
$ /usr/local/mysql/bin/mysqladmin -u root reload
$ /usr/local/mysql/bin/mysql -u root -p mysql
Теперь мы удалим типовую базу данных (test) и все учетные данные, кроме административного аккаунта.
mysql> drop database test;
mysql> delete from user where not (host="localhost" and user="root");
mysql> delete from db;
Также мы изменим имя учетной записи администратора (root) на любое другое. В примере я изменю на простое, а на практике придумай аккаунт посложнее. Объяснять зачем?
mysql> update user set user="myadmin" where user="root";
mysql> flush privileges;
mysql> exit
$ rm /home/admin/.mysql_history
Последняя команда обязательна! Мы удалили файл, содержащий историю вводимых команд в MySQL. Удалить этот файл необходимо, т.к. там содержится не только новое имя администраторского аккаунта, но и его пароль.
Вот и все. Наш MySQL сервер готов к работе.
Вверх
|