Я пытаюсь создать таблицу MySQL на другом жестком диске, чем по умолчанию. Я получаю ошибку разрешения, когда MySQL пытается создать файл. Я думаю, что могу свести это к следующим строкам команд оболочки, которые воспроизводят ошибку в оболочке:
scott@landscapesrv01:/mnt/datadrive/globot/mysql$ ls -lha
total 8.0K
drwxr-xr-x 2 mysql mysql 4.0K 2011-06-06 14:47 .
drwxrwsr-x 3 scott www-data 4.0K 2011-06-06 14:22 ..
-rw-rw-rw- 1 mysql mysql 0 2011-06-06 14:47 globot_tick_spies.MYD
scott@landscapesrv01:/mnt/datadrive/globot/mysql$ sudo sudo -u mysql echo hi > /mnt/datadrive/globot/mysql/globot_tick_spies.MYD
scott@landscapesrv01:/mnt/datadrive/globot/mysql$ sudo chmod 664 globot_tick_spies.MYD
scott@landscapesrv01:/mnt/datadrive/globot/mysql$ ls -lha
total 12K
drwxr-xr-x 2 mysql mysql 4.0K 2011-06-06 14:47 .
drwxrwsr-x 3 scott www-data 4.0K 2011-06-06 14:22 ..
-rw-rw-r-- 1 mysql mysql 3 2011-06-06 14:48 globot_tick_spies.MYD
scott@landscapesrv01:/mnt/datadrive/globot/mysql$ sudo sudo -u mysql echo hi > /mnt/datadrive/globot/mysql/globot_tick_spies.MYD
bash: /mnt/datadrive/globot/mysql/globot_tick_spies.MYD: Permission denied
scott@landscapesrv01:/mnt/datadrive/globot/mysql$
Почему пользователь mysql
не может редактировать файл, для которого у пользователя mysql
есть права доступа и права доступа на уровне пользователя?
ОБНОВИТЬ
Ладно, вышеприведенные команды ошибочны ... Я могу редактировать файлы нормально, как пользователь mysql
scott@landscapesrv01:/mnt/datadrive/globot/mysql$ sudo sudo -u mysql bash
mysql@landscapesrv01:/mnt/datadrive/globot/mysql$ ls -alh
total 8.0K
drwxrwxr-x 2 mysql mysql 4.0K 2011-06-06 15:18 .
drwxrwsr-x 3 scott www-data 4.0K 2011-06-06 14:22 ..
mysql@landscapesrv01:/mnt/datadrive/globot/mysql$ touch test
mysql@landscapesrv01:/mnt/datadrive/globot/mysql$ ls -alh
total 8.0K
drwxrwxr-x 2 mysql mysql 4.0K 2011-06-06 15:50 .
drwxrwsr-x 3 scott www-data 4.0K 2011-06-06 14:22 ..
-rw-r--r-- 1 mysql mysql 0 2011-06-06 15:50 test
mysql@landscapesrv01:/mnt/datadrive/globot/mysql$ echo hi > test
mysql@landscapesrv01:/mnt/datadrive/globot/mysql$ echo hi > test2
mysql@landscapesrv01:/mnt/datadrive/globot/mysql$ ls -alh
total 16K
drwxrwxr-x 2 mysql mysql 4.0K 2011-06-06 15:51 .
drwxrwsr-x 3 scott www-data 4.0K 2011-06-06 14:22 ..
-rw-r--r-- 1 mysql mysql 3 2011-06-06 15:50 test
-rw-r--r-- 1 mysql mysql 3 2011-06-06 15:51 test2
Так что работает нормально ... Но почему я не могу создать свой стол так, как мне нравится?
mysql> CREATE TABLE `globot_tick_spies` ( `test` datetime NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY = '/mnt/datadrive/globot/mysql';
ERROR 1 (HY000): Can't create/write to file '/mnt/datadrive/globot/mysql/globot_tick_spies.MYD' (Errcode: 13)
(Извините за путаницу выше.)