Как защитить или изменить сокет-файл MySQL /tmp/mysql.sock


Если возникают проблемы с тем, что кто угодно может удалить коммуникационный сокет MySQL /tmp/mysql.sock, то в большинстве версий Unix можно защитить содержимое /tmp, установив на каталоге «липучий» (sticky) бит. Войдите в систему как пользователь root и выполните следующую команду:

shell> chmod +t /tmp

Это защитит ваш каталог /tmp: теперь удалять в нем файлы смогут только их владельцы или суперпользователь (root).

Проверить, установлен ли «липучий» (sticky) бит, можно, выполнив ls -ld /tmp. Если последним битом прав является t, то бит установлен.

Изменить путь к каталогу, где MySQL открывает сокет-файл, можно, воспользовавшись одним из следующих способов:

  • Укажите путь в глобальном или локальном файле опций. Например, поместите в /etc/my.cnf:

    [client]
    socket=path-for-socket-file
    
    [mysqld]
    socket=path-for-socket-file
    

    Файлы параметров my.cnf.

  • Укажите, где расположен файл, в командной строке safe_mysqld и большинства клиентов с помощью опции --socket=путь-к-файлу-сокета.

  • Укажите путь к сокету в переменной окружения MYSQL_UNIX_PORT.

  • Определите путь с помощью опции конфигурирования --with-unix-socket-path=путь-к-файлу-сокета (Типичные опции configure).

Проверить, работает ли сокет, можно следующей командой:

shell> mysqladmin --socket=/path/to/socket version