through solucion socket sock run mysqld error mysql

solucion - No se puede conectar al servidor MySQL local a través del socket ''/var/mysql/mysql.sock''(38)



can t connect to local mysql server through socket ''/ var run mysqld mysqld sock (30)

Estoy teniendo un gran problema al intentar conectarme a mysql. Cuando corro

/usr/local/mysql/bin/mysql start

Tengo el siguiente error:

Can''t connect to local MySQL server through socket ''/var/mysql/mysql.sock'' (38)

Tengo mysql.sock en el directorio /var/mysql .

En /etc/my.cnf tengo:

[client] port=3306 socket=/var/mysql/mysql.sock [mysqld] port=3306 socket=/var/mysql/mysql.sock key_buffer_size=16M max_allowed_packet=8M

y en /etc/php.ini tengo:

; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. mysql.default_socket = /var/mysql/mysql.sock

He reiniciado Apache usando sudo /opt/local/apache2/bin/apachectl restart

Pero todavía tengo el error.

De lo contrario, no sé si eso es relevante, pero cuando hago mysql_config --sockets obtengo

--socket [/tmp/mysql.sock]


¿está seguro de que instaló mysql y también el servidor mysql?

Por ejemplo, para instalar el servidor mySql usaré yum o apt para instalar tanto la herramienta de línea de comandos mysql como el servidor:

yum -y install mysql mysql-server (or apt-get install mysql mysql-server)

Habilitar el servicio MySQL:

/sbin/chkconfig mysqld on

Iniciar el servidor MySQL:

/sbin/service mysqld start

después establezca la contraseña de root de MySQL:

mysqladmin -u root password ''new-password'' (with the quotes)

Espero que ayude.


Añadiendo

--protocol=tcp

La lista de empleados en su conexión funcionó para mí.


Acabo de tener este problema. después de un día de verificar finalmente tengo la respuesta con eso. El archivo mysql.sock se crea cuando MariaDB se inicia y se elimina cuando MariaDB se apaga. No existirá si MariaDB no se está ejecutando. Tal vez usted no instaló MariaDB. PODRÍA SEGUIR LA INSTRUCCIÓN A CONTINUACIÓN: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST


Asegúrese de que está ejecutando mysqld: /etc/init.d/mysql start


CentOS 7, 64 bit. Instalación nueva.
En mi caso, el error se debió a que no tenía el servidor MySQL y el cliente MySQL correctos instalados.
Usando yum , mariadb y mysql-community edition. Descargué las rpm para el cliente y el servidor desde el sitio web oficial de MySQL e instalé el servidor y el cliente.

Al instalar el servidor, se me mostró un mensaje de que la contraseña de la cuenta raíz de MySQL estaba almacenada en un archivo que podía ver con sudo cat /root/.mysql_secret .

Entonces, después de instalar el cliente y el servidor, verifiqué si MySQL estaba funcionando (creo que reinicié antes de hacerlo) con el comando sudo service mysql status y obtuve el resultado.

MySQL en ejecución (2601) [OK]

Ingresé a MySQL usando la contraseña del archivo .mysql_secret:
mysql -uroot -pdxM01Xfg3DXEPabpf . Tenga en cuenta que dxM01Xfg3DXEPabpf es la contraseña mencionada en el archivo .mysql_secret.

y luego escribió ingresó el siguiente comando en el indicador de mysql para cambiar la contraseña de root:

mysql> SET PASSWORD FOR ''root''@''localhost'' = PASSWORD(''somePassword'');

Todo funcionó bien a partir de entonces.


Como pueden ver las muchas respuestas aquí, hay muchos problemas que pueden generar este mensaje de error al iniciar el servicio MySQL. La cuestión es que, por lo general, MySQL le dirá exactamente lo que está mal si solo busca en el archivo de registro apropiado.

Por ejemplo, en Ubuntu, debe verificar /var/log/syslog . Debido a que muchas otras cosas también pueden estar registrando en este archivo, es probable que desee utilizar grep para ver los mensajes de mysql, y la tail para ver solo los más recientes. Todos juntos, eso podría parecer:

grep mysql /var/log/syslog | tail -50

No haga cambios a ciegas en su configuración porque alguien más dijo ''Esto funcionó para mi sistema''. Descubra qué es lo que realmente está mal con su sistema y obtendrá un mejor resultado mucho más rápido.


En mi caso, estaba usando Centos 5.5. Encontré que el problema era porque el servicio mysql se detuvo de alguna manera. Entonces comencé el servicio mysql con el comando:

/etc/init.d/mysqld start

Así que ... error tonto.


Esto fue lo suficientemente bueno para mí

sudo /etc/init.d/mysql restart


Hay muchas soluciones para este problema, pero para mi situación, solo necesitaba corregir la FECHA en la máquina / servidor (Servidor Ubuntu 16.04 ).

i) Verifique la fecha de su servidor y corríjala.

ii) Ejecute sudo /etc/init.d/mysql restart

Eso debería empezar.


Me encontré con este problema hoy. Ninguna de estas respuestas proporcionó la solución. Necesitaba hacer los siguientes comandos (que se encuentran aquí https://.com/a/20141146/633107 ) para que comience mi servicio mysql:

sudo /etc/init.d/mysql stop cd /var/lib/mysql/ ls ib_logfile* mv ib_logfile0 ib_logfile0.bak mv ib_logfile1 ib_logfile1.bak ... etc ... /etc/init.d/mysql restart

Esto fue parcialmente indicado por los siguientes errores en /var/log/mysql/error.log:

140319 11:58:21 InnoDB: Completed initialization of buffer pool InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes InnoDB: than specified in the .cnf file 0 5242880 bytes! 140319 11:58:21 [ERROR] Plugin ''InnoDB'' init function returned error. 140319 11:58:21 [ERROR] Plugin ''InnoDB'' registration as a STORAGE ENGINE failed. 140319 11:58:21 [ERROR] Unknown/unsupported storage engine: InnoDB 140319 11:58:21 [ERROR] Aborting

También vi el error de disco completo, pero solo cuando se ejecutan comandos sin sudo. Si la verificación de permisos falla, informa que el disco está lleno (incluso cuando la partición no está casi llena).


Otra solución es editar /etc/my.cnf e incluir el host en la sección [cliente]

[client] #password = your_password host = 127.0.0.1 port = 3306 socket = /var/run/mysql/mysql.sock

Y luego reiniciando el servicio mysql.

Esta solución se probó en: Versión del servidor: 5.5.25a-log Distribución de fuentes


Para aquellos cuya solución no funcionó, intente:

cd /etc/mysql

comprueba si my.cnf está presente

nano my.cnf

y asegúrese de tener una única dirección de enlace de la siguiente manera:

bind-address = 127.0.0.1

Si no, ese podría ser el problema, simplemente salga de nano y guarde el archivo.

y service mysql start

tenga en cuenta que si no tiene nano (es un editor de texto) solo instálelo con apt-get install nano y una vez que presione Ctrl + X para salir, no olvide decir S para guardar y usar el mismo archivo)


Para evitar que se produzca el problema, debe realizar un cierre correcto del servidor desde la línea de comandos en lugar de apagar el servidor.

shutdown -h now

Esto detendrá los servicios en ejecución antes de apagar la máquina.

Basado en Centos, un método adicional para recuperarlo nuevamente cuando se encuentre con este problema es mover mysql.sock:

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak service mysqld start

Al reiniciar el servicio se crea una nueva entrada llamada mqsql.sock


Para mí, este fue simplemente un caso de MySQL que tardó mucho tiempo en cargarse. Tengo más de 100.000 tablas en una de mis bases de datos y finalmente se inició, pero obviamente tiene que tomar mucho tiempo en este caso.


Recibí el error porque estaba ejecutando MAMP y mi archivo .sock estaba en una ubicación diferente. Acabo de agregar un enlace simbólico en el que la aplicación pensó que debería ser lo que indicaba dónde estaba realmente y funcionó a la perfección.


Recibí este error cuando configuro el trabajo cron para mi archivo. Cambié los permisos del archivo a 777 pero todavía no funcionó para mí. Finalmente conseguí la solución. Puede ser que sea útil para otros.

Intenta con este comando:

mysql -h 127.0.0.1 -P 3306 -u raíz -p

Recuerda que -h significa host y -p significa puerto .


Si está utilizando la versión Micro de AWS (Amazon Web Services), entonces es un problema de memoria. Cuando corri

mysql

desde la terminal diría

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

Así que intenté lo siguiente y simplemente fallaría.

service mysqld restart

Después de mucho buscar, descubrí que tienes que crear un archivo de intercambio para que MySQL tenga suficiente memoria. Las instrucciones están listadas: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html .

Entonces, pude reiniciar mysqld.


Si su archivo my.cnf (generalmente en la carpeta / etc / mysql / ) está configurado correctamente con

socket=/var/lib/mysql/mysql.sock

puedes verificar si mysql se está ejecutando con el siguiente comando:

mysqladmin -u root -p status

intente cambiar su permiso a la carpeta mysql. Si estás trabajando localmente, puedes probar:

sudo chmod -R 755 /var/lib/mysql/

eso me lo resolvió


Si todo funcionó bien y recién comenzaste a ver este error, antes de hacer otra cosa, asegúrate de no estar sin espacio en el disco:

df -h

Si el volumen en el que se está creando mysql.sock se está utilizando al 100%, MySql no podrá crearlo y esta será la causa de este error. Todo lo que necesita hacer es eliminar algo que no es necesario, como los archivos de registro antiguos.


También encontré que esto era un problema de permisos. Comparé los archivos MySQL con una instalación en funcionamiento (tanto en Debian 6 squeeze) y tuve que hacer los siguientes cambios de propiedad (donde mydatabase es cualquier base de datos que tenga).

Propiedad mysql:mysql :

chown mysql:mysql /var/lib/mysql chown mysql:mysql /var/lib/mysql/ib* chown mysql:mysql /var/lib/mysql/mydatabase chown mysql:mysql /var/lib/mysql/mydatabase/* chown mysql:mysql /var/lib/mysql/mysql/*

Propiedad mysql:root :

chown mysql:root /var/lib/mysql/mysql chown mysql:root /var/run/mysqld

Propiedad mysql:adm :

chown mysql:adm /var/log/mysql chown mysql:adm /var/log/mysql.err chown mysql:adm /var/log/mysql.log*


También tuve este problema al intentar iniciar el servidor, por lo que muchas de las respuestas aquí que simplemente dicen que iniciar el servidor no funcionaron. Lo primero que puede hacer es ejecutar lo siguiente para ver si hay errores de configuración:

/usr/sbin/mysqld --verbose --help 1>/dev/null

Tuve un error que apareció:

160816 19:24:33 [Note] /usr/sbin/mysqld (mysqld 5.5.50-0ubuntu0.14.04.1-log) starting as process 9461 ... 160816 19:24:33 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead. 160816 19:24:33 [Note] Plugin ''FEDERATED'' is disabled. 160816 19:24:33 [ERROR] /usr/sbin/mysqld: unknown variable ''innodb-online-alter-log-max-size=4294967296'' 160816 19:24:33 [ERROR] Aborting

Un simple grep -HR "innodb-online-alter-log-max-size" /etc/mysql/ me mostró exactamente qué archivo contenía la línea ofensiva, así que eliminé esa línea del archivo.

Luego, revisando mi archivo /var/log/mysql/error.log que tenía:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 671088640 bytes! 160816 22:46:46 [ERROR] Plugin ''InnoDB'' init function returned error. 160816 22:46:46 [ERROR] Plugin ''InnoDB'' registration as a STORAGE ENGINE failed. 160816 22:46:46 [ERROR] Unknown/unsupported storage engine: InnoDB 160816 22:46:46 [ERROR] Aborting

Basándome en esta pregunta, la solución aceptada no funcionaría porque ni siquiera podía iniciar el servidor, así que seguí lo que decían algunos de los comentarios y eliminé mi /var/lib/mysql/ib_logfile0 y /var/lib/mysql/ib_logfile1 Archivos /var/lib/mysql/ib_logfile1 .

Esto permitió que el servidor se iniciara y pude conectar y ejecutar consultas, sin embargo, al revisar mi archivo de registro de errores, se estaba llenando rápidamente con varias decenas de miles de líneas como esta:

160816 22:52:15 InnoDB: Error: page 1415 log sequence number 82039318708 InnoDB: is in the future! Current system log sequence number 81640793100. InnoDB: Your database may be corrupt or you may have copied the InnoDB InnoDB: tablespace but not the InnoDB log files. See InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html InnoDB: for more information.

Basándome en una sugerencia de here , para solucionar este problema, realicé un mysqldump y restauré todas las bases de datos (consulte el enlace para ver otras soluciones).

$ mysqldump -u root -p --allow-keywords --add-drop-database --comments --hex-blob --opt --quote-names --databases db_1 db_2 db_3 db_etc > backup-all-databases.sql $ mysql -u root -p < backup-all-databases.sql

Todo parece estar funcionando como se espera ahora.


Tuve el mismo problema y se debió a una actualización de los controladores mysql cuando se estaba ejecutando el servidor mysql. Lo arreglé simplemente reiniciando mysql y apache2:

servicio de sudo mysql parada

sudo service mysql start

sudo service apache2 stop

sudo service apache2 start


Tuve el siguiente error

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

Probé varias maneras y finalmente lo resolví de la siguiente manera.

sudo gksu gedit /etc/mysql/my.cnf

modificado

#bind-address = 127.0.0.1

a

bind-address = localhost

y reiniciado

sudo /etc/init.d/mysql restart

funcionó


Una solución rápida que funcionó para mí: intente usar la dirección IP local (127.0.0.1) en lugar de ''localhost'' en mysql_connect (). Esto "obliga" a php a conectarse a través de TCP / IP en lugar de un socket Unix.


Utilicé 127.0.0.1 para -h en lugar de localhost y todo estaba bien. En otro caso tenía lo que tenía - error que arriba.


prueba con -h (host) y -P (puerto):

mysql -h 127.0.0.1 -P 3306 -u root -p


siempre puede iniciar el servidor mysql especificando la ubicación del archivo mysql.sock utilizando la opción --socket como

mysql --socket=/var/mysql/mysql.sock

Esto funcionará incluso si la ubicación del archivo de socket se especifica en una ubicación diferente en el archivo my.cnf.


Esto no responde directamente a su pregunta, sino a un subconjunto de la misma, a saber, usar PythonAnywhere. Seguí tropezando con esta pregunta cuando buscaba una solución, así que la estoy agregando aquí con la esperanza de que ayude a otros en mi situación.

PythonAnywhere decidió cambiar los nombres de host de conexión de base de datos para mejorar la eficiencia y confiabilidad, como se detalla aquí :

El nombre de host oficial que debe usar para conectarse a la instancia de la base de datos MySQL de su cuenta ha cambiado de mysql.server a su nombre de usuario .mysql.pythonanywhere-services.com . Esto evita una parte de nuestra infraestructura que ha comenzado a mostrar problemas en las últimas semanas, y debería ser mucho más eficiente y confiable que la forma anterior.

Por lo tanto, deberá actualizar su nombre de host al valor resaltado anteriormente.


sudo service mysql start

Esto debería servirte bien. Podría haber una posibilidad de que haya cambiado algunos comandos que afectaron las configuraciones de mysql.


sudo service mysqld start

Funcionó para mí, estoy usando Centos.