Вопрос: Перенос одной базы данных MySql на отдельный физический диск


Я пытаюсь переместить одну базу данных MySql на другой физический диск на моем компьютере Ubuntu. Я использую Ubuntu 17.04.

внешний привод монтируется в / etc / fstab следующим образом (последняя строка):

#zoneminder external drive
/path/to/new/location/zoneminder/images /var/cache/zoneminder/images none defaults,bind  0 2
/path/to/new/location/zoneminder/events /var/cache/zoneminder/events none defaults,bind 0
/dev/disk/by-uuid/a98ab607-15eb-4089-9197-7d26c3576cf9 /path/to/new/location ext4 x-gvfs-show 0 0

Я пробовал следующие шаги:

остановить службу mysql:

sudo service mysql stop

Измените владельца подключенного диска (мне нужно обновить запись fstab, чтобы включить это, но по одной проблеме за раз!):

chown mysql:mysql /path/to/new/location

перейти в папку mysql

cd /var/lib/mysql

скопировать базу данных (называемую zm) в новое место

sudo rsync -av zm /path/to/new/location/zm

переименовать старую базу данных

sudo mv zm zm.old

создать символическую ссылку на базу данных, которую мы использовали

sudo ln -s /path/to/new/location/zm

переместить в новое местоположение базы данных

cd /path/to/new/location

выполнение ll в этот момент показывает мне, что mysql является владельцем / path / to / new / location / zm

установить права доступа к файлам

sudo chmod 700 zm
cd zm
sudo chmod 660 *

добавить новое место в apparmor

sudo nano /etc/apparmor.d/usr.sbin.mysqld

Добавить

/path/to/new/location/ r,
/path/to/new/location/** rwk,

(re) начать услуги

sudo service apparmor restart
sudo service mysql start

Вход в mysql:

mysql -u root -p

открыть новую базу данных

use zm;

показать таблицы

show tables;

и здесь я получаю сообщение об ошибке:

ERROR 1018 (HY000): Can't read dir of './zm/' (errno: 13 - Permission denied)

Я тоже пробовал chmod 777 а также chmod 777 * в /path/to/new/location безуспешно


4
2017-12-18 23:48


Источник


Какая файловая система и mount /path/to/new/location/ и что это за владелец и разрешения этого каталога? - thomasrutter
Я обновил вопрос с помощью своей записи fstab - SEarle1986
Любые опровержения в /var/log/kern.log? - Robie Basak
На вопрос @ thomasrutter: кто является владельцем нового каталога? Я считаю, что это причина вашей проблемы. - richbl
@richbl Изменение / path / to / new / location owner to mysql означает, что я перезапустил службу. Однако теперь я не вижу таблицы в базе данных zm ..... вопрос обновлен - SEarle1986


Ответы:


Починил это!

Проблема заключалась в записи apparmor:

/path/to/new/location/ r,
/path/to/new/location/** rwk,

на самом деле нужно было быть одним каталогом от того, что было:

/path/to/new/ r,
/path/to/new/** rwk,

3
2017-12-21 23:13





Вы можете попробовать этот вариант:

1) first check in my.cnf [/etc/mysql/my.cnf] for database files destination.

2) let say that destination is in folder /var/lib/mysql/ and yours database name is "abccompany"

3) stop mysql database

4) move folder [var/lib/mysql/abccompany] to new destination (let say "/diskY")

5) make symbolic link:
     ln  -s  /diskY/abccompany   abccompany

6) start mysql database and everything should work just fine.

0
2017-12-25 13:19