Вот и дошли руки до баз данных. И хоть я не девелопер в базах, но MySQL нам пригодиться для дальнейшего развертывания web и mail служб на нашем сервере FreeBSD. Почему MySQL? Идеологических объяснений нет, просто он самый популярный. Надеюсь, не опущу рук и рассмотрю в будущем и другие базы.
Приступим…
Опции установки MySQL на FreeBSD
Для установки мускула есть много опций. По этому, перед установкой в /etc/make.conf внесем несколько записей. Укажем версию, кодировку (юникод), и несколько опций:
# MySQL options DEFAULT_MYSQL_VER=55 PORTSDIR?= /usr/ports # server options .if ${.CURDIR} == ${PORTSDIR}/databases/mysql55-server WITH_CHARSET=utf8 WITH_COLLATION=utf8_unicode_ci WITH_LINUXTHREADS=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes WITHOUT_INNODB=yes .endif # client options .if ${.CURDIR} == ${PORTSDIR}/databases/mysql55-client WITH_CHARSET=utf8 WITH_COLLATION=utf8_unicode_ci BUILD_OPTIMIZED=yes .endif
Установка и настройка MySQL на FreeBSD
Теперь соберем MySQL:
cd /usr/ports/databases/mysql55-server/ make && make install & make clean
MySQL собрался — делаем rehash и создадим его конфиг. Для этого, скопируем дефолтный конфиг:
cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
И немного его подправим. У меня он такой:
less /etc/my.cnf
# The MySQL clients options [client] port = 3306 socket = /tmp/mysql.sock # The MySQL server options [mysqld] port = 3306 socket = /tmp/mysql.sock bind-address = 127.0.0.1 skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K skip-networking server-id = 1 #skip-innodb innodb_data_home_dir = /var/db/mysql/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /var/db/mysql/ innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout
Запуск MySQL на FreeBSD
Ставим базы, раздаем права и запускаем MySQL:
/usr/local/bin/mysql_install_db chown -R mysql:mysql /var/db/mysql echo 'mysql_enable="YES"' >> /etc/rc.conf /usr/local/etc/rc.d/mysql-server start
Если ошибки, смотрим логи:
tail -f /var/db/mysql/`uname -a | awk '{print $2}'`.err
Если все ок, нужно установить пароль для мускульного рута и удалить лишних пользователей:
mysqladmin -u root password 'myrootpassword' mysql -uroot -pmyrootpassword mysql
Это мы подключились к мускулу под рутом с использованием нового пароля. Теперь удалим всех лишних пользователей:
mysql> delete from user where not (user='root' and host='localhost');
И переверим что остался только рут:
mysql> select user,host from user; +------+-----------+ | user | host | +------+-----------+ | root | localhost | +------+-----------+
На этом установка и настройка MySQL на FreeBSD завершена. Можно приступать к развертыванию других сервисов.