Символьная ссылка на mysql базу данных

Выполнение СЕТЕВОГО СОЕДИНЕНИЯ из "СИСТЕМНОЙ" учетной записи OpenVMS, а не другой привилегированной учетной записи разрешило ошибки.

4
задан 2 July 2012 в 13:01
2 ответа

Код ошибки (номер ошибки: 13) означает отказ в разрешении. Убедитесь, что у пользователя mysql есть разрешение на чтение и запись / home / user / dbname и все файлы под ним.

Вы можете сделать это с помощью sudo su mysql , а затем некоторая команда, которая обращается к файлу, например file /home/user/dbname/tbl201206.frm[1130424 visible.

Чтобы исправить это, вы, вероятно, захотите выполнить chown -R mysql : mysql / home / user / dbname . Вам также может понадобиться chmod + x /home/user[1130428 visible.

5
ответ дан 3 December 2019 в 02:45

Если вы используете Ubuntu ( и, возможно, другие последние версии Linux), то может случиться так, что MySQL не получит доступа к местоположению вашего файла, даже если права доступа к файлу верны. Это вызвано AppArmor , модулем безопасности Linux, который реализует управление обязательным доступом на основе имени. Чтобы проверить, используете ли вы AppArmor, попробуйте команду:

$ sudo apparmor_status

Если это работает и включает mysqld, вам, вероятно, придется изменить вашу конфигурацию. Это было описано в полезном сообщении andol на AskUbuntu , но это решило проблему для меня только на первый взгляд (я воспроизвожу сообщение andol ниже для удобства и на случай, если другая страница изменится).

После перемещения файла базы данных и размещения символической ссылки, размер файла больше не увеличивался, и вместо него был записан основной файл InnoDB (хотя я использую innodb_file_per_table , чтобы иметь отдельные файлы БД). Теперь я предполагаю, что изменений, предложенных в сообщении andol (и во многих других местах в Интернете), на самом деле недостаточно. В конце концов, я переместил весь каталог данных MySQL и вместо этого отредактировал файл AppArmor /etc/apparmor.d/tunables/alias (и никакой другой файл) (документация находится в файле). Это работало правильно на Ubuntu 12.4 (точно).


Вот что написал andol - как я сказал выше, у меня это не сработало.

Предположим, ваш новый каталог данных будет / home / data / mysql .

Если открыть файл /etc/apparmor.d/usr.sbin. mysqld среди правил вы найдете эти две строки.

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

В нашем примере, приведенном выше, их нужно будет заменить или (что предпочтительно) дополнить этими двумя строками.

/home/data/mysql/ r,
/home/data/mysql/** rwk,

Прежде чем мы сможем запустить наш сервер MySQL, с его новым datadir нам также придется явно перезагрузить наш новый профиль apparmor.

$ sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld

4
ответ дан 3 December 2019 в 02:45

Теги

Похожие вопросы