Директория по умолчанию для баз MySQL у меня /var/lib/mysql, но диск на котором этот каталог - слишком мал. Хочется перенести ее на другой диск, примонтированный, скажем, к /home, - например, чтобы каталогом баз был /home/mysql/. Как правильно это сделать?О системе:
#mysql -V
mysql Ver 14.7 Distrib 4.1.14, for slackware-linux-gnu (i486) using EditLine wrapper
>Директория по умолчанию для баз MySQL у меня /var/lib/mysql, но диск на
>котором этот каталог - слишком мал. Хочется перенести ее на другой
>диск, примонтированный, скажем, к /home, - например, чтобы каталогом баз был
>/home/mysql/. Как правильно это сделать?
>
>О системе:
>#mysql -V
>mysql Ver 14.7 Distrib 4.1.14, for slackware-linux-gnu (i486) using EditLine
>wrapper
А если просто символическую ссылку сделать на более большую директорию?
ln -s
man ln
>А если просто символическую ссылку сделать на более большую директорию?
>ln -s
>man lnСобственно, я так и делаю (это работает), но у меня нет уверенности, что этот способ - правильный.
Точнее, я делаю так:
меняю домашнюю директорию пользователя mysql
usermod -d /home/mysql -m mysql
, а затем добавляю на нее мягкий линк:
cd /var/lib
ln -s /home/mysql mysqlЭтот способ работает, но он должен быть ошибочным, так как нет причины делать линк, кроме как незнание, где указать прогрммам mysql правильную домашнюю директорию в явном виде. Так что вопрос пока остается...
>Этот способ работает, но он должен быть ошибочным, так как нет причины
>делать линк, кроме как незнание, где указать прогрммам mysql правильную домашнюю
>директорию в явном виде. Так что вопрос пока остается...Есть несколько способов решить проблему
Один из них я тебе подсказал, хотя ты его и сам знал.
Этот способ ошибочным считать нельзя т.к. он решает проблему.
Его можно назвать нестандартным, нелогичным, нерациональным, но только не неправильным.Если хочешь методами SQL перекинуть - читай про initdb.
Но неуверен, что это правильно
>А если просто символическую ссылку сделать на более большую директорию?
>ln -s
>man lnнадо запускать mysqld с опцией --datadir=/path
man mysqld
>надо запускать mysqld с опцией --datadir=/pathЭто выглядит логичнее чем линк. А откуда вообще мой mysqld узнает о директории /var/lib/mysql? Нельзя ли это в какой-нибудь конфиг прописать, чтобы все скрипты в "первозданном" виде остались, ну и соответственно, при их обновлении/замене не приходилось бы вспоминать о том, что нужно подправить параметры запуска mysqld?
>>надо запускать mysqld с опцией --datadir=/path>Это выглядит логичнее чем линк. А откуда вообще мой mysqld узнает о
>директории /var/lib/mysql? Нельзя ли это в какой-нибудь конфиг прописать, чтобыон изначально был скомпилирован с этими параметрами.
>скрипты в "первозданном" виде остались, ну и соответственно, при их обновлении/замене
>не приходилось бы вспоминать о том, что нужно подправить параметры запуска
>mysqld?никак. Либо перекомпиляцией mysql, либо подправить скрипт mysqld_safe
>никак. Либо перекомпиляцией mysql, либо подправить скрипт mysqld_safeТак и есть, я все понял. Спасибо.
>никак. Либо перекомпиляцией mysql, либо подправить скрипт mysqld_safeНе нужно вводить в заблужение людей:
[h]~ $ grep datadir /etc/my.cnf
datadir=/var/db/mysql
[h]~ $
>>никак. Либо перекомпиляцией mysql, либо подправить скрипт mysqld_safe
>Не нужно вводить в заблужение людей:
>[h]~ $ grep datadir /etc/my.cnf
>datadir=/var/db/mysql
>[h]~ $Тоже вариант. Только my.cnf я, например, не использую и у меня в системе его вообще нет. Нет _изначально_. Все параметры задаются при старте mysqld.