MySQL / Linux: пользовательский файл стоп-слов - отказано в разрешении - PullRequest
1 голос
/ 18 декабря 2011

Я пытаюсь установить свой собственный список стоп-слов для полнотекстового индекса MySQL (5.1.54), но возникли проблемы с настройкой.Я попробовал следующие шаги:

  1. Я установил системную переменную в / etc / mysql / my.cnf , добавив строку:

    ft_stopword_file = "/home/buli/stopwords.txt"
    
  2. Я создал файл / home / buli / stopwords.txt со словами, которые следует игнорировать
  3. Теперь, когда я перезагружаю MySQL, используя sudo service mysql restart есть запись в / var / log / mysql / error.log , говорящая:

    /usr/sbin/mysqld: File '/home/buli/stopwords.txt' not found (Errcode: 13)
    111218 19:07:18 [Note] Event Scheduler: Loaded 0 events
    111218 19:07:18 [Note] /usr/sbin/mysqld: ready for connections.
    

Running perror 13 переводит еекак разрешение отклонено проблема.Файл, однако, существует, и я даже дал ему полные права:

    $ ls -l /home/buli/stopwords.txt
    -rwxrwxrwx 1 buli buli 6 2011-12-18 18:41 /home/buli/stopwords.txt

Может ли быть какая-то другая, специфичная для mysql причина возникновения этой ошибки (так как права доступа к файлам кажутся нормальными)?

Ответы [ 3 ]

2 голосов
/ 18 декабря 2011

Вы используете MySQL в дистрибутиве, который использует AppArmor, chroot и т. Д. Для его защиты?

Для AppArmor вам необходимо обновить /etc/apparmor.d/usr.sbin.mysqld (или аналогичный)для chroot вы должны скопировать файл.

Лучше всего поместить файл стоп-слов под каталогом данных и указать только реальный путь.

0 голосов
/ 01 ноября 2014
Step 1. Search my.cnf or my.ini
# whereis my.cnf
or
#mysql --verbose --help | less

Step 2. Edit my.cnf file
#sudo vim /etc/my.cnf

# Add stop word file and file should be exist
ft_stopword_file="/usr/mysql/stop_words.txt"  ## You can give any path where you put your stop file

Step 3-> Restart mysql
#sudo service mysqld  restart

Step 3-> Login my sql
#mysql -u root -p
mysql -> use mydatabase_name;

mysql-> show variables like 'ft_%';

Variable_name            | Value

ft_stopword_file      /usr/mysql/stop_words.txt`enter code here`

Step -> 5 :- Repair full-test table file

 REPAIR TABLE tablename QUICK

mysql-> REPAIR TABLE products QUICK;
0 голосов
/ 18 декабря 2011

Один: НИКОГДА НЕ ДАЙТЕ 777 ПРАВ НА ЛЮБОЙ ФАЙЛ .

Два: проблема, безусловно, в том, что пользователь, работающий с MySQL, не может ввести /home/buli. Если вам нужен доступ к файлу, вы также должны иметь как минимум разрешение на выполнение для всех каталогов, ведущих к этому файлу (да, разрешение на чтение даже не требуется).

...