mysql5.6 как определить datadir

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

mysql5.6 как определить datadir

Непрочитанное сообщение bagas » 2017-07-13 21:39:56

Добрый вечер.
Не получается указать mysql 5.6 datadir.
То-есть хочу поместить базы на отдельный диск, а параметр datadir все время по умолчанию.
Помогите пожалуйста разобраться, уже не знаю еще прочитать.
/etc/make.conf

Код: Выделить всё

PORTSDIR?=/usr/ports
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql56-server
MY_DBDIR=/var/db/base_mysql/mysql
MY_SECDIR=/var/db/base_mysql/mysql_secure
MY_TMPDIR=/var/db/base_mysql/mysql_tmpdir
.endif

Код: Выделить всё

# cat /usr/local/etc/mysql/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set = utf8
#
[mysqld]
[b]datadir=/var/db/base_mysql/mysql[/b]
tmpdir=/tmp
bind-address=3.5.4.3
port=3306
socket=/tmp/mysql.sock
skip-external-locking
default-storage-engine = innodb
max_connections = 42
key_buffer_size = 70M
max_allowed_packet = 180M
table_open_cache = 3770
sort_buffer_size = 10M
read_buffer_size = 10M
join_buffer_size = 10M
read_rnd_buffer_size = 12M
max_heap_table_size=82M
tmp_table_size=82M
table_definition_cache = 3770
myisam_sort_buffer_size = 80M
query_cache_size= 850M
query_cache_type = 1
query_cache_limit= 105M
query_cache_min_res_unit= 1
thread_cache_size = 55
thread_concurrency = 16
#max_join_size = 80000000
#max_sort_length=624
innodb_buffer_pool_size = 27G
innodb_buffer_pool_instances = 6
innodb_additional_mem_pool_size = 25M
innodb_write_io_threads = 32
innodb_read_io_threads = 32
innodb_thread_concurrency = 32
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
#skip-networking
#long_query_time=1
#slow_query_log=1
#slow_query_log_file="/var/log/mysql/slow-query.log"
log_error = /var/log/mysql/errors.log
#
[mysqldump]
quick
#
[mysql]
no-auto-rehash
#
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
#
[mysqlhotcopy]
interactive-timeout

Код: Выделить всё

# ps -ax | grep mysql
25566  -  Ss       0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local [b]--datadir=/var/db/mysql[/b] --pid-file=/var/db/mysql/BA
26510  -  S        0:02.23 /usr/local/libexec/mysqld --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local [b]--datadir=/var/db/mysql[/b] --plugin-dir=/usr/local/lib/mysql/pl
26514  1  S+       0:00.00 grep mysql

Код: Выделить всё

# uname -rms
FreeBSD 11.0-RELEASE-p10 amd64

Код: Выделить всё

# mysql -V
mysql  Ver 14.14 Distrib 5.6.36, for FreeBSD11.0 (amd64) using  EditLine wrapper

Код: Выделить всё

 ls -al /var/db/base_mysql/
total 12
drwxr-xr-x   3 root  wheel     512 Jul 13 20:39 .
drwxr-xr-x  16 root  wheel     512 Jul 13 20:58 ..
drwxrwxr-x   2 root  operator  512 Jul 10 15:28 .snap

Код: Выделить всё

# mount | grep base
/dev/nvd1p2 on /var/db/base_mysql (ufs, local, noatime)
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

mysql5.6 как определить datadir

Непрочитанное сообщение guest » 2017-07-14 14:07:57

bagas писал(а):Добрый вечер.
Не получается указать mysql 5.6 datadir.
То-есть хочу поместить базы на отдельный диск, а параметр datadir все время по умолчанию.
Помогите пожалуйста разобраться, уже не знаю еще прочитать.
Вы и не читали, или не пытались пропустить через серое вещество:
/etc/make.conf

Код: Выделить всё

PORTSDIR?=/usr/ports
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql56-server
MY_DBDIR=/var/db/base_mysql/mysql
MY_SECDIR=/var/db/base_mysql/mysql_secure
MY_TMPDIR=/var/db/base_mysql/mysql_tmpdir
.endif
MY_DBDIR и остальные задаются при сборке, но кроме этого придется править
скрипт запуска в /usr/local/etc/rc.d/mysql-server

Код: Выделить всё

# cat /usr/local/etc/mysql/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set = utf8
#
[mysqld]
[b]datadir=/var/db/base_mysql/mysql[/b]
tmpdir=/tmp
bind-address=3.5.4.3
port=3306
socket=/tmp/mysql.sock
skip-external-locking
default-storage-engine = innodb
max_connections = 42
key_buffer_size = 70M
max_allowed_packet = 180M
table_open_cache = 3770
sort_buffer_size = 10M
read_buffer_size = 10M
join_buffer_size = 10M
read_rnd_buffer_size = 12M
max_heap_table_size=82M
tmp_table_size=82M
table_definition_cache = 3770
myisam_sort_buffer_size = 80M
query_cache_size= 850M
query_cache_type = 1
query_cache_limit= 105M
query_cache_min_res_unit= 1
thread_cache_size = 55
thread_concurrency = 16
#max_join_size = 80000000
#max_sort_length=624
innodb_buffer_pool_size = 27G
innodb_buffer_pool_instances = 6
innodb_additional_mem_pool_size = 25M
innodb_write_io_threads = 32
innodb_read_io_threads = 32
innodb_thread_concurrency = 32
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
#skip-networking
#long_query_time=1
#slow_query_log=1
#slow_query_log_file="/var/log/mysql/slow-query.log"
log_error = /var/log/mysql/errors.log
#
[mysqldump]
quick
#
[mysql]
no-auto-rehash
#
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
#
[mysqlhotcopy]
interactive-timeout

Код: Выделить всё

# ps -ax | grep mysql
25566  -  Ss       0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local [b]--datadir=/var/db/mysql[/b] --pid-file=/var/db/mysql/BA
26510  -  S        0:02.23 /usr/local/libexec/mysqld --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local [b]--datadir=/var/db/mysql[/b] --plugin-dir=/usr/local/lib/mysql/pl
26514  1  S+       0:00.00 grep mysql

Код: Выделить всё

# uname -rms
FreeBSD 11.0-RELEASE-p10 amd64

Код: Выделить всё

# mysql -V
mysql  Ver 14.14 Distrib 5.6.36, for FreeBSD11.0 (amd64) using  EditLine wrapper

Код: Выделить всё

 ls -al /var/db/base_mysql/
total 12
drwxr-xr-x   3 root  wheel     512 Jul 13 20:39 .
drwxr-xr-x  16 root  wheel     512 Jul 13 20:58 ..
drwxrwxr-x   2 root  operator  512 Jul 10 15:28 .snap

Код: Выделить всё

# mount | grep base
/dev/nvd1p2 on /var/db/base_mysql (ufs, local, noatime)
на кой менять переменные в Makefile. если все делается очень просто,
смотрим
# less /usr/local/etc/rc.d/mysql-server
...
# mysql_dbdir (str): Default to "%%MY_DBDIR%%"
# Base database directory.
# mysql_confdir (str): Default to "%%ETCDIR%%"
# Base configuration directory.
# mysql_optfile (str): Server-specific option file.
# Set it in the rc.conf or default behaviour of
# `mysqld_safe` itself, will be picking
# ${mysql_confdir}/my.cnf if it exists.
...
достаточно задать переменную mysql_dbdir в /etc/rc.conf:

mysql_enable="YES"
mysql_dbdir="/path/mydir"

Все.

Включаем мозк, если верхнее сделано ДО ПЕРВОГО СТАРТА mysql - все будет OK,
если же mysql уже стартовал:

# /usr/local/etc/rc.d/mysql-server status
# /usr/local/etc/rc.d/mysql-server stop
# rsync -av /var/db/mysql /path/

после чего
# /usr/local/etc/rc.d/mysql-server start

Вы собственно не понимаете что есть base_dir, data_dir в mysql, где можно задать и все они должны
совпадать, где бы не задавали, в скриптах запуска или my.cnf.

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

mysql5.6 как определить datadir

Непрочитанное сообщение bagas » 2017-07-14 14:15:42

Так и сделал уже.
Спасибо.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.