Podczas próby zmiany katalogu danych na serwerze Ubuntu 10.04 pojawił się następujący błąd.
100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 19:33:00 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
mysql
ubuntu-10.04
directory
Norling Jr.
źródło
źródło
Odpowiedzi:
Po pewnym ogólnym zamieszaniu na temat uprawnień OP zdał sobie sprawę, że problemem nie było to, że nie miał uprawnień i uprawnień do ścieżki, ale że AppArmor uniemożliwiał MySQL odczytywanie i zapisywanie w nowej lokalizacji.
Oto jego rozwiązanie:
Najpierw zatrzymaj MySQL, aby nic dziwnego się nie działo, gdy bawiąc się:
Następnie przenieś wszystkie katalogi bazy danych do ich nowego domu:
Nie przenoś plików, zostaną one wygenerowane przez mysql, po prostu przenieś foldery (które są bazami danych).
Następnie grzecznie poproś AppArmor o zezwolenie mysql na użycie nowego folderu:
Następnie powiedz mysql, że datadir został przeniesiony:
UWAGA: W zależności od konfiguracji bazy danych może być konieczna zmiana innodb-data-home-dir itp.
Następnie uruchom ponownie AppArmor, aby odczytać nowe ustawienia:
I ponownie uruchom MySQL przy użyciu nowego katalogu danych:
źródło
/new-mysql-dir/ r
przeciwnym razie nadal będzie to odrzucane. Podstawowe rzeczy związane z Linuksem, ale nigdy nie mogę uzyskać poprawnych ukośników.