MySQL: Установка и базовая настройка


Мини-руководство "шаг за шагом"

Собираем три mysql-пакета - client, server, tests:

# cd /usr/ports/databases/mysql
# make package

Для проверки работоспособности можно выполнить набор прилагаемых тестов:

# make do-regress

Устанавливаем прекомпилированный пакет клиентской части MySQL:

# pkg_add /usr/ports/packages/i386/all/mysql-client-4.0.24.tgz

Устанавливаем зависимости для mysql-server:

# cd /usr/ports/databases/p5-DBD-mysql
# make install clean CLEANDEPENDS=Yes

Устанавливаем прекомпилированный пакет серверной части MySQL:

# pkg_add /usr/ports/packages/i386/all/mysql-server-4.0.24p1.tgz

При необходимости создаем директорию /var/mysql:

# mkdir -p /var/mysql
# chown _mysql:_mysql /var/mysql

Запускаем скрипт для создания типовых баз mysql и test:

# /usr/local/bin/mysql_install_db

Воспользуемся рекомендованной разработчиками версией my.cnf:

# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

Выставляем корректные права доступа для /etc/my.cnf:

# chmod 644 /etc/my.cnf

Производим конфигурирование:

# vi /etc/my.cnf
[client]
port            = 3306
socket          = /var/run/mysql/mysql.sock

[mysqld]
bind-address	= 127.0.0.1
port            = 3306
socket          = /var/run/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
myisam_sort_buffer_size = 8M
log-bin
server-id = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

С помощью специального враппера запускаем mysqld:

# /usr/local/bin/mysqld_safe &

Проверяем, готов ли mysqld принимать входящие подключения:

# netstat -na -f inet | grep 3306
tcp	0	0	127.0.0.1.3306	*.*	LISTEN

Задаем пароль суперпользователя БД:

# /usr/local/bin/mysqladmin -u root password 'noidea'

Подключаемся к серверу MySQL:

% /usr/local/bin/mysql -u root -p
Enter password: noidea
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.0.24-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

В качестве дополнительной меры защиты можно удалить вспомогательную базу данных test, созданную скриптом mysql_install_db, все SQL'ые учетные записи, кроме root, а затем изменить имя главной учетной записи:

% /usr/local/bin/mysql -u root -p
mysql> drop database test;
mysql> use mysql;
mysql> delete from db;
mysql> delete from user where not (host="localhost" and user="root");
mysql> flush privileges;
mysql> update user set user="andrey" where user="root";
mysql> flush privileges;
mysql> quit

Пример запуска mysqld из стартового rc-скрипта:

# vi /etc/rc.local
if [ -x /usr/local/bin/mysqld_safe ]; then
	echo -n ' mysqld'; /usr/local/bin/mysqld_safe > /dev/null 2>&1 &
fi


OpenBSD.ru www@openbsd.ru
$RuOBSD: mysql.html,v 1.16 2010/11/01 10:57:48 dinar Exp $