Spec-Zone.ru › MySQL 8.4

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
    

    См. Раздел 6.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-8.4-en/problems-with-mysql-sock.html

Spec-Zone.ru

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