Необходим лог запросов к СУБД. Заходим в консоль MySQL и включаем.
SET GLOBAL log_output = "FILE"; SET GLOBAL general_log_file = "/var/db/mysql/sql.log"; SET GLOBAL general_log = 'ON';
Выключаем.
SET GLOBAL general_log = 'OFF';
Необходим лог запросов к СУБД. Заходим в консоль MySQL и включаем.
SET GLOBAL log_output = "FILE"; SET GLOBAL general_log_file = "/var/db/mysql/sql.log"; SET GLOBAL general_log = 'ON';
Выключаем.
SET GLOBAL general_log = 'OFF';
Создаем файл /root/mysql-init следующего содержания:
UPDATE mysql.user SET authentication_string = PASSWORD('PaSsWoRd'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
в файл /etc/rc.conf
mysql_args="--init-file=/root/mysql-init"
Перезапускаем сервис mysqld командой:
service mysql-server restart
Удаляем или комментируем строку в файле rc.conf: mysql_args и еще раз перезапускаем mysql.
Заходим с установленным нами паролем или используем файл /root/.my.cnf
Установка MySQL.
# pkg search mysql | grep server geoserver-mysql-plugin-2.6.1 mysql51-server-5.1.73_2 mysql55-server-5.5.41 mysql56-server-5.6.22 # pkg install mysql56-server-5.6.22
или
cd /usr/ports/databases/mysql56-server/ make install clean
Разрешаем запуск MySQL сервера.
echo 'mysql_enable="YES"' >> /etc/rc.conf
Настраиваем файл конфигурации /var/db/mysql/my.cnf
[mysqld] long_query_time = 2 key_buffer_size = 512M max_allowed_packet = 2M sort_buffer_size = 16M read_buffer_size = 16M read_rnd_buffer_size = 32M myisam_sort_buffer_size = 256M thread_cache_size = 16 query_cache_size = 256M query_cache_type=1 query_cache_limit=1048576 max_connections = 512 tmp_table_size=256M max_heap_table_size=128M innodb_file_per_table innodb_buffer_pool_size = 512M innodb_log_buffer_size = 32M innodb_flush_method=O_DIRECT innodb_doublewrite = false innodb_flush_log_at_trx_commit = 2 sync_binlog = 0 character-set-server=utf8 collation-server=utf8_bin default-storage-engine=INNODB max_allowed_packet=100M innodb_log_file_size = 256M
Запускаем.
# /usr/local/etc/rc.d/mysql-server start
Меняем пароль root.
# mysql mysql> use mysql; mysql> update user set password=PASSWORD("password") where User='root'; mysql> flush privileges; mysql> quit
Дабы при работе с mysql не вводить каждый раз пароль:
mysql -uroot -ppassword
Создаем файл /root/.my.cnf следующего содержания:
[client] password = password
Для пущей безопасности:
chmod 600 /root/.my.cnf
Создание базы данных name_database и пользователя user_database имеющего полные права для работы только с этой базой данных:
CREATE DATABASE name_database CHARACTER SET utf8; CREATE USER 'user_database'@'localhost' IDENTIFIED BY 'user_password'; GRANT ALL PRIVILEGES ON name_database.* TO 'user_database'@'localhost'; flush privileges;
Создаем скрипт.
#!/bin/sh datafile=`date +%Y.%m.%d` /usr/local/bin/mysqldump -uroot -pPASSWORD --all-databases -q | bzip2 > /backup/alldb_backup_${datafile}.bz2
Настраиваем запуск по cron (crontab -e).
0 5 * * * /usr/local/etc/cron/mysql_backup.sh