Опишу установку
MySQL 5.5 на
FreeBSD 9.1. Для себя, чтобы не забыть. Может еще кому пригодится.
В конце всех манипуляций мы получим MySQL сервер
- недоступный по сети - рулить буду через phpMyAdmin с этого же компьютера
- с ежедневным бэкапом БД
- с UTF-8 кодировкой
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;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)
mysql> quit
Bye
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.cnf
8. Восстановление забытого 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/mysqlhttp://dtopcms.ru/docs/freebsd/mysql55_install.shtmlhttp://www.rublin.org/node/114Исправления и замечания приветствуются.