Выполнение СЕТЕВОГО СОЕДИНЕНИЯ из "СИСТЕМНОЙ" учетной записи OpenVMS, а не другой привилегированной учетной записи разрешило ошибки.
Код ошибки (номер ошибки: 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.
Если вы используете 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