Ви є тут

Установка MySQL на FreeBSD

MySQL Logo

Вот и дошли руки до баз данных. И хоть я не девелопер в базах, но 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 завершена. Можно приступать к развертыванию других сервисов.

Tags: 

Коментарі

Благодарю автора за замечательную статью. По ходу столкнулся с такими граблями:1. путь размещения базы по умолчанию не /var/db/mysql, а /usr/local/data (похоже не лишнее прописать его в /etc/rc.conf в параметр mysql_dbdir)2. По этому же пути ищется my.cnf3. Скрипт /usr/local/bin/mysql_install_db "хочет" запускаться из каталога /usr/local. Иначе при его запуске нужно задавать параметр --basedir, указывающий на этот путь, потому что относительно этого пути ищется каталог с базой по умолчанию.4. В файле my.cnf, в том случае если сборка устанавливалась без использования innodb и запуск сопровождается появлением сообщения "[ERROR] Default storage engine (InnoDB) is not available", нужно закомментировать skip-innodb, а взамен указать default-storage-engine=MyISAM5. Для отладки очень полезно использовать конструкцию:> script ~/mysql-debug.log sh -xv /usr/local/etc/rc.d/mysql-server startВ файле ~/mysql-debug.log МАССА информации для анализа и устранения возникающих проблем. Желаю всем успехов, и автору в особенности!

Спасибо, друг!!! Все сходу получилось!!! респект!!!

все работает, но если выдает ошибкуFatal Error: Could not find ./bin/my_print_defaultsпосле

/usr/local/bin/mysql_install_db , то лучше выполнять эту команду с /usr/local

 

Помогло, спасиб, до этого почти так-же делал всё не получалось, а тут как по магии всё заработало :-)

В данном случае конфиг /etc/my.cnf до одного места :) Он отдута не читается :) В /var/db/mysql его нужно кидать!С innodb тоже какаято лажа. С одной стороны при сборке его исключили, с другой в конфиге его настраиваем :) Дмитрий весьма точно описал проблемы статьи, могу только сказать "+1"

Додати коментар

Filtered HTML

  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Дозволені теги HTML: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Рядки та параграфи відокремлюються автоматично.

Plain text

  • HTML теґи не відображаються
  • Рядки та параграфи відокремлюються автоматично.
By submitting this form, you accept the Mollom privacy policy.

Вхід

Powered by Rublin team