У меня установлен экземпляр 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 не может получить доступ к новому каталогу, а в том, что он все еще использует старый.
Оказывается, сценарий управления Amazon "/opt/bitnami/ctlscript.sh" выполняет сценарий конфигурации mysql в /opt/bitnami/mysql/scripts/ctl.sh
Досадно, что этот сценарий отменяет некоторые ключевые настройки из файла my.cnf. Их обновление устраняет проблему.
Вам необходимо настроить mysql для использования нового каталога журналов, отредактируйте /etc/mysql/my.cnf (в данном случае я использую Debian) и обновите
general_log_file = /mnt/data/log
Удачи.