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ę:
$ sudo stop mysql
Następnie przenieś wszystkie katalogi bazy danych do ich nowego domu:
$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/
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:
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
>> add lines
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Następnie powiedz mysql, że datadir został przeniesiony:
$ sudo vim /etc/mysql/my.cnf
>> change the line
datadir=/var/lib/mysql
>> to
datadir=/my-new-db-dir/
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:
$ sudo /etc/init.d/apparmor restart
I ponownie uruchom MySQL przy użyciu nowego katalogu danych:
$ sudo start mysql