Как дать mysqld доступ на запись в каталог?

3

Я запускаю OSX прямо сейчас и пытаюсь запустить процесс mysqld и вижу следующую ошибку:

 $ /usr/local/mysql/bin/mysqld --user=root
111026 11:05:08 [Warning] Can't create test file /usr/local/mysql-5.5.15-osx10.6-x86_64/data/XXX.lower-test
111026 11:05:08 [Warning] Can't create test file /usr/local/mysql-5.5.15-osx10.6-x86_64/data/XXX.lower-test
111026 11:05:08 [Warning] One can only use the --user switch if running as root

111026 11:05:08 [Note] Plugin 'FEDERATED' is disabled.
/usr/local/mysql/bin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
111026 11:05:08 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
111026 11:05:08 InnoDB: The InnoDB memory heap is disabled
111026 11:05:08 InnoDB: Mutexes and rw_locks use GCC atomic builtins
111026 11:05:08 InnoDB: Compressed tables use zlib 1.2.3
111026 11:05:08 InnoDB: Initializing buffer pool, size = 128.0M
111026 11:05:08 InnoDB: Completed initialization of buffer pool
111026 11:05:08  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: 'open'.
InnoDB: Cannot continue operation.

Я понимаю, проблема в том, что, поскольку я не использую sudo, моя текущая учетная запись пользователя не имеет права на запись в

/usr/local/mysql-5.5.15-osx10.6-x86_64/data/

Я пытаюсь сделать две разные вещи

  1. Дайте процессу mysqld доступ на запись в этот каталог без использования chmod 700 или чего-либо еще. Я пытаюсь использовать chown, и он не работает

  2. Создайте скрипт, чтобы процесс mysqld запускался при загрузке

Может кто-нибудь мне помочь?


источник

Ответы:

3

В зависимости от того, какой uid использует mysqld, chmod 700каталог данных может не помочь. Вы можете сделать следующее:

  • chmod 777 /usr/local/mysql-5.5.15-osx10.6-x86_64/data/
  • Запустите mysqld снова
  • ls -l /usr/local/mysql-5.5.15-osx10.6-x86_64/data/ определить владельца созданных файлов
  • chown OWNER /usr/local/mysql-5.5.15-osx10.6-x86_64/data
  • chmod 700 /usr/local/mysql-5.5.15-osx10.6-x86_64/data/
Nohillside
источник
Также измените группу владения и сделайте это рекурсивно: chgrp -R mysql data_folder
Сентил Кумар Вайтиянатан
@SenthilKumarVaithiyanathan Если родительские разрешения dir установлены 0700, групповые разрешения / владение не имеют значения
nohillside