FreeBSD: установка MariaDB

Я использовал MariaDB (версия MySQL, развиваемая независимыми от Oracle разработчиками) версии 5.2.3 и FreeBSD 8.1.

Скачиваем исходники, распаковываем. Я пользуюсь bash, в sh данная команда не будет работать корректно:

CC=gcc CFLAGS="-O2 -fno-strength-reduce" CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions -felide-constructors -fno-strength-reduce" ./configure --prefix=/usr/local/mysql --enable-assembler
gmake
gmake install


Тестируем:

cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl


Создаем группу mysql и пользователя mysql:

pw groupadd mysql
pw useradd mysql -d /opt/mysql -s /usr/sbin/nologin -G mysql


Я расположил директорию баз данных в /opt — так для меня удобнее:

mkdir /opt
cd /usr/local/mysql
bin/mysql_install_db --user=mysql --datadir=/opt/mysql


В директории /usr/local/mysql/share/mysql можно найти образцы файлов конфигураций:

my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf


Как нетрудно догадаться, речь идет о количестве потребляемой MariaDB памяти. В данном топике углубляться в оптимизацию не будем.

Копируем:

cp /usr/local/mysql/share/mysql/my-medium.cnf /opt/mysql/my.cnf


Тестовый запуск сервера:

/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/opt/mysql/my.cnf --user=mysql --datadir=/opt/mysql --pid-file=/opt/mysql/mysql.pid


101125 14:01:52 mysqld_safe Logging to '/opt/mysql/hostname.err'.
101125 14:01:52 mysqld_safe Starting mysqld daemon with databases from /opt/mysql


Отлично. В /opt/mysql/hostname.err видим:

101125 14:01:52 mysqld_safe Starting mysqld daemon with databases from /opt/mysql
101125 14:01:52 [Note] Event Scheduler: Loaded 0 events
101125 14:01:52 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.2.3-MariaDB-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution


Останавливаем:

/usr/local/mysql/bin/mysqladmin -u root -p shutdown


Создаем скрипт mariadb в /etc/rc.d/. Данный скрипт необходим для правильного старта и остановки сервиса:

#!/bin/sh

# PROVIDE: mariadb
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name="mariadb"
rcvar=`set_rcvar`
load_rc_config $name

start_cmd="mariadb_start"
stop_cmd="mariadb_stop"

mariadb_start() {
    checkyesno mariadb_enable && echo "Starting MariaDB." && \
    /usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/opt/mysql/my.cnf --user=mysql --datadir=/opt/mysql --pid-file=/opt/mysql/mysql.pid > /dev/null 2>&1 &	
}

mariadb_stop() {
    checkyesno mariadb_enable && echo "Stopping MariaDB." && \
    /usr/local/mysql/bin/mysqladmin -u service -pпароль shutdown > /dev/null 2>&1
}

run_rc_command "$1"


-u service означает пользователя (в MariaDB), от имени которого можно остановить MariaDB, -pпароль — соответственно пароль данного пользователя. Открываем консоль MariaDB (предварительно запустив сервис):

/usr/local/etc/rc.d/mariadb onestart
/usr/local/mysql/bin/mysql -u root


В консоли:

create user 'service'@'localhost' identified by 'пароль';
grant shutdown on *.* to 'service'@'localhost';


Меняем права на скрипт на 700:

chmod 700 /etc/rc.d/mariadb


Добавляем в /etc/rc.conf строку:

mariadb_enable="YES"


Старт сервиса будет осуществляться автоматически при запуске системы.

Запуск вручную:

/etc/rc.d/mariadb onestart

Остановка:

/etc/rc.d/mariadb onestop
  • +7
  • 25 ноября 2010, 19:55
  • Sergei_T

Комментарии (4)

RSS свернуть / развернуть
+
0
Хорошая шпаргалка по установке и запуску MySQL вообще и MariaDB в частности.
avatar

yababay

  • 25 ноября 2010, 21:34
+
0
Да уж !
avatar

Markony

  • 26 ноября 2010, 15:18
+
0
Для Debian:

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure     --prefix=/usr/local/mysql --enable-assembler
avatar

Sergei_T

  • 02 декабря 2010, 17:09
+
0
Затем:

/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/opt/mysql --basedir=/usr/local/mysql
avatar

Sergei_T

  • 02 декабря 2010, 17:15

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.