Недавно я переместил свой каталог данных базы данных MySQL из местоположения по умолчанию /var/lib/mysql
на новый жесткий диск, расположенный в /media/..UID../mysql
, выполнив шаги, которые вы можете найти в нескольких сообщениях.
datadir
в [mysqld]
из /etc/mysql/my.cnf
После этих шагов I попытался создать новую базу данных, и это сработало, оно появляется также в новой папке. Затем я создал новую таблицу InnoDB, и она также сработала, и она помещает файл *frm
в папку /mysql/new
. Но затем я хотел создать таблицу MyISAM в этой базе данных, я получил ошибку
#1 - Can't create/write to file '/media/..UID../mysql/new/tableName.MYI' (Errcode: 13)
Я уже пытался установить все разрешения на 777, так как я думал, что это проблема с разрешениями (но поскольку InnoDB может писать в эту папку, я не могу понять, почему MyISAM не может !?). Мне кажется, что движку MyISAM нужно другое специальное разрешение для записи своих файлов, но я не знаю, где.
Сначала я подумал, что это проблема с монтированием этого нового жесткого диска, но потом опять - InnoDB может создавать папки базы данных, а также создавать файлы внутри этих папок.
Итак, любая помощь приветствуется, если у кого-то возникла похожая проблема после перемещения таблицы MyISAM, и он мог бы дать некоторые подсказки, где искать или что еще попробовать.
Большое спасибо уже заранее!
У меня была похожая проблема.
Вот что работает в Ubuntu 12.04
Чтобы переместить файлы данных из /var/lib/mysql
в /newdir_path/newdir
sudo mysql stop
sudo rsync -av /var/lib/mysql /newdir_path/newdir ## like copy, but keeps rights
sudo -H gedit /etc/mysql/my.cnf
, измените datadir
на /newdir_path/newdir
sudo -H gedit /etc/apparmor.d/usr.sbin.mysqld
[ 1113] вместо:
/var/lib/mysql/ r,
/var/lib/mysql/** /rwk
введите:
/newdir_path/newdir/ r,
/newdir_path/newdir/** rwk,
Теперь выполните:
sudo /etc/init.d/apparmor restart
sudo chown mysql:mysql <b>/newdir_path
sudo start mysql