У меня настроен экземпляр EC2, и я пытаюсь переместить каталог данных MySQL в смонтированное хранилище.
Каталог данных по умолчанию:
/opt/bitnami/mysql/data
Я полностью скопировал этот каталог в
/mnt/mysql_data
Затем я изменил путь в my.cnf на следующий:
datadir=/mnt/mysql_data
и переименовал старый каталог, чтобы быть уверенным, что использую новый.
Я дал MySQL соответствующие разрешения на новый каталог - но я не думаю, что MySQL даже пытается туда попасть. Когда я пытаюсь перезапустить mysql, я получаю ошибки о предыдущем каталоге данных:
sudo /opt/bitnami/ctlscript.sh start mysql
111122 18:50:50 mysqld_safe Logging to '/opt/bitnami/mysql/data/mysqld.log'.
touch: cannot touch `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
chown: cannot access `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
111122 18:50:50 mysqld_safe Starting mysqld.bin daemon with databases from /opt/bitnami/mysql/data
/opt/bitnami/mysql/bin/mysqld_safe: 739: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
eval: 1: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
111122 18:50:50 mysqld_safe mysqld from pid file /opt/bitnami/mysql/data/ip-10-120-253-190.pid ended
/opt/bitnami/mysql/bin/mysqld_safe: 783: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
Я где-то пропустил шаг настройки? Я видел, как другие решали проблемы, настраивая apparmor, но у меня даже нет файла "/etc/apparmor.d/usr.sbin.mysqld", который они должны были изменить. Плюс, моя проблема, похоже, не в том, что mysql не может получить доступ к новому каталогу, а в том, что он все еще использует старый.
решение1
Оказывается, управляющий скрипт Amazon "/opt/bitnami/ctlscript.sh" выполняет скрипт конфигурации MySQL по адресу /opt/bitnami/mysql/scripts/ctl.sh
Досадно, что этот скрипт переопределяет несколько ключевых настроек из файла my.cnf. Обновление их там решает проблему.
решение2
Вам необходимо настроить mysql для использования нового каталога журналов, отредактируйте /etc/mysql/my.cnf (в данном случае я использую Debian) и обновите
general_log_file = /mnt/data/log
Удачи.