Тонкая настройка mysql во freebsd ­ Дневник ­ Максим Боголепов

:

С установкой проблем возникнуть не должно. Сперва необходимо обновить дерево портов, перейти в каталог установки mysql-server, выбрать необходимые опции установки, произвести собственно установку.

 # portsnap fetch update
 # cd /usr/ports/databases/mysql55-server
 # make config
 # make install clean

Список опций невелик (нажмите для увеличения):

Mysql-server config

Установка серверной части mysql повлечет за собой автоматическую установку клиентской части: mysql-client-5.5.17. От вас потребуется только выбрать интересующие вас опции в окне (нажмите для увеличения):

Mysql-client config

После завершения установки, вас предупредят о необходимости запустить команду mysql_upgrade (опционально с флагом --datadir=<dbdir>), чтобы проапгрейдить существующие базы данных, работающие с более ранней версией mysql-server (если к вам это применимо).

Теперь необходимо занести в ваш rc.conf строку mysql_enable=“YES, для автоматического старта mysql-server при запуске сервера.

# nano -w /etc/rc.conf
...
mysql_enable="YES"
...

или просто сделайте echo 'mysql_enable="yes"' >> /etc/rc.conf

Теперь вам необходимо, в зависимости от предполагаемой нагрузки на сервер, выбрать один из конфигурационных файлов, находящихся в /usr/local/share/mysql, и скопировать его в /var/db/mysql:

# ls /usr/local/share/mysql/ | grep my-
my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf
# cp /usr/local/share/mysql/my-large.cnf /var/db/mysql/my.cnf

Для того, чтобы заставить mysql писать лог, нам необходимо выполнить следующие операции. Создать файл для логирования, присвоить ему соответствующие права, прописать его расположение в my.cnf, настроить newsyslog для ротации этого файла.

 # touch /var/log/mysqld.log
 # chmod 0600 /var/log/mysqld.log
 # chown mysql:mysql /var/log/mysqld.log
 # echo '/var/log/mysqld.log  mysql:mysql  600  7  * @T00 JC  /var/db/mysql/hostname.pid' >> /etc/newsyslog.conf

Замените hostname на hostname своего сервера. Теперь с помощью вашего любимого редактора занесем в my.cnf следующие строки:

# nano -w /var/db/mysql/my.cnf
... 
[safe_mysqld]
err-log=/var/log/mysqld.log
...

Если ваш mysql-server работает в автономном режиме (standalone) и вы не планируете делать репликации на сервер-партнер, то закомментируйте в своем my.cnf следующие строки (чтобы не плодить не нужных бинарных логов):

# nano -w /var/db/mysql/my.cnf
 ...
 # Replication Master Server (default)
 # binary logging is required for replication
 #log-bin=mysql-bin
 # binary logging format - mixed recommended
 #binlog_format=mixed
 ...

Также, если вы хотите, чтобы mysql-server работал на каком-то определенном сетевом интерфейсе, а не на всех, внесите в ваш my.cnf в секцию [mysqld] параметр bind_address:

# nano -w /var/db/mysql/my.cnf
...
port            = 3306
bind_address    = 127.0.0.1
socket          = /tmp/mysql.sock
...

Настал момент для запуска вашего mysql-server командой:

# /usr/local/etc/rc.d/mysql-server start

Во время первого запуска mysql-server сам проинициализирует свои каталоги, находящиеся в /var/db/mysql. Проверить работу mysql-server можно командой:

# netstat -tan | grep 3306
tcp4       0      0 127.0.0.1.3306         *.*                    LISTEN

Если вы получили то же самое, значит все в порядке и ваш сервер mysql запущен. Если же нет, то вам необходимо изучить файл /var/db/mysql/hostname.err (hostname будет ваш), на предмет ошибок и предупреждений. Если сервер запущен, то этот лог должен выглядеть примерно так:

# less /var/db/mysql/hostname.err
111212 13:45:08 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
111212 13:45:08 InnoDB: The InnoDB memory heap is disabled
111212 13:45:08 InnoDB: Mutexes and rw_locks use GCC atomic builtins
111212 13:45:08 InnoDB: Compressed tables use zlib 1.2.3
111212 13:45:08 InnoDB: Initializing buffer pool, size = 128.0M
111212 13:45:08 InnoDB: Completed initialization of buffer pool
111212 13:45:08 InnoDB: highest supported file format is Barracuda.
111212 13:45:09  InnoDB: Waiting for the background threads to start
111212 13:45:10 InnoDB: 1.1.8 started; log sequence number 1595675
111212 13:45:10 [Note] Event Scheduler: Loaded 0 events
111212 13:45:10 [Note] /usr/local/libexec/mysqld: ready for connections.

еперь надо проделать очень важную операцию – задать пароль root’а для mysql-server. Делается это так:

# mysqladmin -u root -h localhost password 'swordfish'

где:

  • параметр -u указывает пользователя, который будет входить в систему (в данном случае – root);
  • параметр -h указывает узел сети (обычно это localhost, если вы настраиваете не удаленный сервер);
  • swordfish замените на необходимый вам пароль (запомните его).

Теперь, чтобы каждый раз, работая с mysql-server, не вводить этот пароль, сделаем следующее: в домашнем каталоге /root создадим файл .my.cnf, сделаем его доступным только root’у и внесем в этот файл пароль root’а на mysql-server.

 # touch /root/.my.cnf
 # chmod 0600 /root/.my.cnf
 # nano -w /root/.my.cnf
 [client]
 password=swordfish

Не забудьте заменить swordfish на свой собственный пароль.

Нам осталось зайти в консоль mysql и выполнить какую-нибудь команду (просмотрим список существующих баз командой show databases;) для проверки работоспособности:

# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.17 Source distribution
Copyright (c) 2000, 2011, 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> show databases;
----------------------
| Database           |
----------------------
| information_schema |
| mysql              |
| performance_schema |
| test               |
----------------------
4 rows in set (0.01 sec)
mysql> quit;
Bye
#

Проконтролировать работу своего mysql-server вы можете в любой момент командой:

# mysqladmin status
Uptime: 266352  Threads: 3  Questions: 3699010  Slow queries: 3  Opens: 244  Flush tables: 25  Open tables: 22  Queries per second avg: 13.887

Вот в принципе и все. Удачи!