Главная > Программы > База данных > MySQL Установка MySQL 5.5 на FreeBSD 9.1Опишу установку MySQL 5.5 на FreeBSD 9.1. Для себя, чтобы не
забыть. Может еще кому пригодится.
1. Устанавливаем сервер. Настройки локалей и прочего в make.conf уже не нужны - из make-файла порта их убрали. # cd /usr/ports/databases/mysql55-server/ # make install clean # rehash Настраиваем запуск MySQL при старте системы: # echo 'mysql_enable="YES"' >> /etc/rc.conf 2. Производим первоначальную инициализацию БД # cd /usr/local # ./bin/mysql_install_db --datadir=/var/db/mysql --user=mysql 3. Создаём файл настроек /var/db/mysql/my.cnf # cat /var/db/mysql/my.cnf #[client]
character_set_client=utf8
#password = your_password
port = 3306
socket = /tmp/mysql.sock
[mysqld]
skip-networking
character-set-server=utf8
init-connect="SET NAMES utf8"
long_query_time=5
slow_query_log=1
slow_query_log_file=/var/db/mysql/slow.log
#port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
query_cache_size=64M
max_allowed_packet = 128M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
innodb_flush_log_at_trx_commit=2
skip-innodb_doublewrite
server-id = 1
# binlog if need
#expire_logs_days = 10
#max_binlog_size = 512M
#log-bin=mysql-bin
#binlog_format=mixed
[mysqldump]
quick
max_allowed_packet = 128M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
Устанавливаем права на каталог с БД: # chown -R mysql:mysql /var/db/mysql Убеждаемся, что в /etc/newsyslog.conf присутствует /var/log/mysql.log 600 2
500 * ZC
4. Запускаем MySQL # /usr/local/etc/rc.d/mysql-server start и проверяем запустился ли: # ps ax | grep mysql 14626 ?? Ss 0:00,04 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql
15304 ?? S 0:00,12 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql
5. Теперь устанавливаем root пароль для доступа к БД, удаляем анонимного пользователя и тестовую БД: # mysql_secure_installation Теперь пробуем подключится к БД: # mysql -uroot -p Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.5.31-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Убедимся, что БД test удалена: mysql> show databases; 6. Настраиваем ежедневный бэкап БД: # cd /usr/ports/databases/mysqlbackup # make install clean # rehash Добавляем в /etc/periodic.conf: mysqlbackup_enable="YES"
mysqlbackup_args="-a -u root -l 7 -z bzip2"
С такими настройками будут хранится 7 последних архивных копий всех БД в папке бэкапов /var/backups. Для более подробной информации - man mysqlbackup в помощь. 7. Для того, чтобы mysql и mysqlbackup не просили root-пароль, создадим файл /root/.my.cnf с таким содержимым: [mysql]
user=root
password=ROOTS_PASSWORD_HERE
[client]
user=root
password=ROOTS_PASSWORD_HERE
# chmod 600 /root/.my.cnf8. Восстановление забытого root-пароля: Добавляем (или меняем существующие) опции в rc.conf: mysql_args="--skip-grant-tables --skip-networking"
# /usr/local/etc/rc.d/mysql-server restart # mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') -> WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit http://daemon-notes.com/articles/network/mysql http://dtopcms.ru/docs/freebsd/mysql55_install.shtml http://www.rublin.org/node/114 Материал взят с сайта: http://www.bsdportal.ru/kb.php?a=3 MySQL - установка и базовая настройкаПора заняться установкой MySQL-сервера, поскольку много чего будем хранить именно в этой базе данных. Список необходимых опций сборки добавим в /etc/make.conf:
# Путь к коллекции портов
PORTSDIR?= /usr/ports
# Версия MySQL сервера
DEFAULT_MYSQL_VER=55
# Oпции для сборки клиента
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql55-client
# Кодировка клиента по умолчанию.
WITH_CHARSET=cp1251
# Коллэйшн или сравнение.
WITH_COLLATION=cp1251_bin
# В общем, если эта опция действительно хоть что-то
# оптимизирует, то странно что она по дефолту не включена,
# а предлагается опционально.
BUILD_OPTIMIZED=yes
.endif
# Oпции для сборки сервера
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql55-server
# Кодировка сервера по умолчанию.
WITH_CHARSET=cp1251
# Какие кодировки компилить еще.
WITH_XCHARSET=all
# Кодировка коллэйшн.
WITH_COLLATION=cp1251_bin
# Вкомпилить ли SSL. Есть смысл, если к MySQL-серверу
# разрешены коннекты откуда либо, кроме как с локалхоста.
WITHOUT_OPENSSL=yes
# Если следующую опцию поставить в yes, то MySQL будет работать
# в несколько потоков (только для i386)
WITH_LINUXTHREADS=yes
# Тоже че-то связано с многопоточностью сервера.
# Чего не знаем - нетрогаем.
#WITH_PROC_SCOPE_PTH=yes
# Как и с клиентом, типа "оптимизируемся".
BUILD_OPTIMIZED=yes
# Сборка статического варианта mysql демона. Я так понимаю, что
# статический демон не станет подгружать дополнительные
# библиотеки, потому что уже будет собран с ними же. Но где
# тогда здесь выигрыш в производительности? Хоть в случае с
# динамической версией - будут тратиться определенные ресурсы
# на подгрузку библиотек; хоть в случае со статиком - он будет
# эти библиотеки постоянно удерживать в памяти...
# Эту опцию нельзя применять если у Вас WITH_OPENSSL=yes
BUILD_STATIC=yes
# Поддержка INNODB таблиц. Кому не надо, можете отключить.
WITH_INNODB=yes
# Следущая опция - это для тех, кто использует кластера MySQL.
WITHOUT_NDB=yes
.endif
Приступаем непосредственно к инсталляции серверной части (клиентскую часть подтянет автоматически). # cd /usr/ports/databases/mysql55-server # make install clean # rehash Добавляем в /etc/rc.conf строку о необходимости запуска MySQL-сервера: # echo '# MySQL' >> /etc/rc.conf # echo 'mysql_enable="YES"' >> /etc/rc.conf Запускаем сервер # sh /usr/local/etc/rc.d/mysql-server start Меняем пароль для пользователя root в MySQL (хотя, обычно, завожу пользователя с полными привилегиями, а запись пользователя root удаляю полностью): # mysqladmin -u root password new_passwd_here Теперь следует отредактировать конфигурационный файл mysql, который называется my.cnf. Положить его можно в любую из этих папок: /var/db/mysql/, /etc/, /usr/local/etc/. MySQL при запуске проверит его наличие во всех этих каталогах. Если конфигурациооный файл отсутствует – можно скопировать доступный пример и при необходимости отредактировать его (доступны примеры для нагруженного сервера, для сервера со средней нагрузкой и для ненагруженного сервера) # cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf Для решения проблем с кодировкой кирилицы, добавим в секцию [client]: default-character-set=cp1251
И, соответственно, в секцию [mysqld]: character-set-server = cp1251
collation-server = cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake
skip-name-resolve
Также, для удобства, можете изменить параметры логгирования. Для этого в секцию [mysqld] файла /var/db/mysql/my.cnf добавляем строку log=/var/log/mysql.log Также необходимо создать сам файл логов: # touch /var/log/mysql.log # chown mysql:mysql /var/log/mysql.log Перегружаем MySQL для того, чтобы новые настройки вступили в силу: # sh /usr/local/etc/rc.d/mysql-server restart Кстати... Если уж возьметесь писать логи MySQL - ОБЯЗАТЕЛЬНО настройте ротацию логов, а не то лог-файл очень скоро разрастется до неимоверных размеров (вплоть до того, что не останется свободного места на разделе. Например, будем архивировать лог раз в неделю. Для этого в /etc/newsyslog.conf необходимо добавить следующую строку: /var/log/mysql.log mysql:mysql 600 2 * $W6D0 JB /var/db/mysql/hostname.pid
Обратите внимание: pid-файл будет уникальный (зависит от от имени сервера). Дальше создадим пользователя, с правами суперпользователя в БД MySQL: GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'user_pass' WITH GRANT OPTION;
Теперь еще осталось удалить остальных пользователей, которых mysql создает по-умолчанию. # mysql -u username -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.84-log FreeBSD port: mysql-server-5.0.84 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> DELETE FROM user WHERE NOT user='username'; Query OK, 4 rows affected (0.00 sec) mysql> quit
Базовая настройка MySQL-сервера завершена. Материал взят с сайта: http://muff.kiev.ua/content/mysql-ustanovka-i-bazovaya-nastroikaГлавная > Программы > База данных > MySQL |