4 votos

/etc/mysql permisos no dejes de superusuario no conectar a la toma

Estamos ejecutando Ubuntu server 13.10 bajo Vagrant, y han llegado a través de un interesante problema.

Estamos anulando la ubicación del zócalo en la resolución conf.d/mi.cnf

[client]
port                           = 3306
socket                         = /tmp/mysql.sock


[mysqld_safe]
socket                         = /tmp/mysql.sock

[mysqld]
user                           = mysql
pid-file                       = /var/run/mysqld/mysql.pid
socket                         = /tmp/mysql.sock
port                           = 3306
datadir                        = /var/lib/mysql
bind-address                   = 0.0.0.0

Hasta ahora tan bueno. Iniciando el servidor, de hecho hay un socket de escucha en /tmp.

Sin embargo, sólo el superusuario puede acceder a ella!

Como no superusuario, mysql -u root -pXXXX obtiene el siguiente error:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

El cliente intenta conectarse en el mal encaje.

Hemos asumido que el problema era que nuestro usuario no privilegiado no puede acceder a los archivos de conf para encontrar la correcta toma de, y de hecho, el cambio de los permisos en /etc/mysql para 0755 corrige este problema, pero no parece que el derecho de corrección.

Como una nota del lado, en 12.04 este comportamiento es el mismo, pero es enmascarada por el hecho de que cuando mysql se inicia, crea el socket en /tmp, pero también crea un enlace simbólico en /var/run/mysqld, así que cuando el cliente intenta conectarse, se encuentra el socket predeterminado.

En ambos equipos, mysql es la versión 5.5.37.

2voto

Dennis Nolte Puntos 1730

Dependiendo de su configuración exacta de abajo podría ser suficiente para solucionar su problema de conexión.

usted puede comenzar a mysql con la opción --socket=/tmp/mysql.calcetín

desde el Manual de Mysql

--socket=path, -S path

Para las conexiones a localhost, el archivo socket Unix para el uso, o, en Windows, el nombre de la canalización con nombre para su uso.

Para tener esa configuración almacenados sin dejar que el usuario lea todo el mysql de configuración puede cambiar los ajustes de la ~/.mi.archivo cnf

ver los Archivos de opciones para más detalles

En su caso habría que agregar socket=/tmp/mysql.calcetín para este archivo.

0voto

katit Puntos 130

Yo miraba a una bastante nueva instalación de Ubuntu 14.04 y los permisos por defecto en /etc/mysql son 755. Para ser honesto, no entiendo por qué usted piensa que esto es un problema.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: