Spec-Zone.ru › MySQL 5.7

B.3.3.6 Как защитить или изменить файл сокета MySQL Unix

По умолчанию, файл сокета Unix, используемый сервером для связи с локальными клиентами, находится по адресу /tmp/mysql.sock. (В некоторых дистрибутивах каталог может отличаться, например, /var/lib/mysql для RPM.)

В некоторых версиях Unix любой пользователь может удалить файлы в каталоге /tmp или других аналогичных каталогах, используемых для временных файлов. Если файл сокета находится в таком каталоге на вашей системе, это может вызвать проблемы.

В большинстве версий Unix вы можете защитить каталог /tmp, чтобы файлы могли удалять только их владельцы или суперпользователь (root). Для этого установите бит sticky в каталоге /tmp, войдя как root и используя следующую команду:

$> chmod +t /tmp

Вы можете проверить, установлен ли бит sticky, выполнив команду ls -ld /tmp. Если последний символ разрешения - t, бит установлен.

Другой подход - изменить местоположение, где сервер создаёт файл сокета Unix. Если вы это сделаете, вы также должны сообщить клиентским программам о новом местоположении файла. Вы можете указать расположение файла несколькими способами:

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

    [mysqld]
    socket=/path/to/socket
    
    [client]
    socket=/path/to/socket
    

    См. Раздел 4.2.2.2, «Использование файлов опций».

  • Укажите опцию --socket в командной строке для mysqld_safe и при запуске клиентских программ.

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

  • Перекомпилируйте MySQL из исходных кодов, чтобы использовать другое расположение файла сокета Unix по умолчанию. Определите путь к файлу с опцией MYSQL_UNIX_ADDR при запуске CMake. См. Раздел 2.8.7, «Опции конфигурации MySQL из исходных кодов».

Вы можете проверить, работает ли новое расположение сокета, попытавшись подключиться к серверу с помощью этой команды:

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/problems-with-mysql-sock.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API