GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la ubicación correcta del archivo mysql.sock en Linux?

La declaración del socket debe ubicarse en [mysqld] en tu my.cnf . Si lo ha declarado allí y aún apunta a otro lugar como tmp , entonces tu my.cnf el archivo que ha estado editando no se lee cuando se inicia mysql o hay otro my.cnf anulando el que ha estado editando. También puede darse el caso de que exista un segundo Socket declaración en el mismo my.cnf archivo que anula el que espera que mysql lea al inicio.

Puede comprobar su ruta absoluta iniciando sesión en mysql y ejecutando:

mysql> show variables like 'socket';
+-----------------------------------------+-------------------------------+
| Variable_name                           | Value                         |
+-----------------------------------------+-------------------------------+
| socket                                  | /yourpath/mysql.sock          |
+-----------------------------------------+-------------------------------+
1 rows in set (0.00 sec)

No hay un lugar correcto o incorrecto en Linux para guardar sockets, excepto en dispositivos externos que se desmontan en cualquier momento o carpetas que se vacían de vez en cuando. Debe configurar dónde desea colocarlo.

Para el cliente de la consola MySQL, hay algo más que considerar:el cliente parece usar el valor de configuración del socket proporcionado en [cliente] en lugar de [mysqld]. Si tiene una configuración de servidor MySQL múltiple como la mía (4.1, 5.5, 5.7), probablemente quiera usar una opción "--defaults-extra-file" con el socket escrito en la parte [cliente] para cada servidor diferente. El socket debe ser el mismo que el definido en la parte my.cnf [mysqld] utilizada en el servidor. Aquí hay un ejemplo defaults-extra-file.cnf, recuerde cambiar el usuario, la contraseña y el socket según sus necesidades:y manténgalo en los derechos de acceso 400 (después de todo, hay una contraseña almacenada):

[client]
user = guardian
password = I-4m.Gr00t!
host = localhost
socket = /var/run/mysqld/mysqld-5.6.sock

Sin embargo, esto solo se aplica si está utilizando "localhost" como el valor de "host". Si tiene varias direcciones locales (127.0.0.2, 127.0.0.3), debe dejar la variable de configuración para "host" en "localhost" para usar el socket configurado. De lo contrario, el cliente se conectará al servidor mediante TCP.

Esto fue probado en mi servidor Debian 9.5 con MySQL 4.1.22, 5.5.49 y 5.7.19 y sus respectivos clientes.


Linux
  1. ¿Qué es el número de inodo en Linux?

  2. Linux:¿cuáles son las diferentes formas de establecer permisos de archivos, etc. en Gnu/linux?

  3. ¿Cuál es el propósito del archivo .bashrc en Linux?

  4. ¿Cuál es la forma correcta de instalar jdk en Linux?

  5. ¿Cuál es la limitación máxima de archivos abiertos en Linux?

Introducción al sistema de archivos de Linux

¿Qué es umask en Linux?

¿Qué es el Shell en Linux?

¿Qué es el archivo .bashrc en Linux?

¿Cómo encuentro la ubicación MySQL my.cnf?

¿Cuál es el efecto de configurar un socket de Linux:alta prioridad?