Tengo 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
bajo el /var/mysql
directorio.
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 aún tengo el error.
De lo contrario, no sé si eso es relevante, pero cuando lo hago mysql_config --sockets
me sale
--socket [/tmp/mysql.sock]
/var/log/mysql
o en algún lugar por allí) que indique por qué no se está ejecutando? ¿Recibe un error cuando intenta iniciarlo?service mysqld start
si acaba de instalar. hthsudo service mysql start
me salvóRespuestas:
Si su archivo my.cnf (generalmente en la carpeta / etc / mysql / ) está configurado correctamente con
puede verificar si mysql se está ejecutando con el siguiente comando:
intente cambiar su permiso a la carpeta mysql. Si está trabajando localmente, puede intentar:
eso me resolvió
fuente
mysqld
servicio.¿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:
Habilite el servicio MySQL:
Inicie el servidor MySQL:
luego establezca la contraseña de root de MySQL:
Espero que ayude.
fuente
brew install mysql
sudo apt-get install mysql-server
vida era buenaCan't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
del cliente? Es el cliente que intenta y no se conecta, ¿verdad? (Creo que la pregunta original necesita edición para aclarar eso).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.
fuente
localhost
y obtiene de127.0.0.1
todos modos antes de siquiera intentar conectarse?Tuve el siguiente error
Intenté varias formas y finalmente lo resolvió de la siguiente manera
modificado
a
y reiniciado
funcionó
fuente
localhost
arreglarlo.Asegúrese de estar ejecutando mysqld:
/etc/init.d/mysql start
fuente
sudo service mysql start|restart
para Ubuntu.Para evitar que ocurra el problema, debe realizar un apagado correcto del servidor desde la línea de comandos en lugar de apagarlo.
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 encuentra con este problema es mover mysql.sock:
Reiniciar el servicio crea una nueva entrada llamada mqsql.sock
fuente
Recibí este error cuando configuré el trabajo cron para mi archivo. Cambié los permisos de archivo a 777 pero todavía no funcionó para mí. Finalmente obtuve la solución. Puede ser que sea útil para otros.
Prueba con este comando:
Recuerde que -h significa host , -P significa puerto y -p significa contraseña.
fuente
-p
no significa puerto , significa contraseña , lo has confundido con-P
mysql -h 127.0.0.1 -u root -p
Como se puede ver en las muchas respuestas aquí, hay muchos problemas que pueden provocar este mensaje de error cuando inicia el servicio MySQL. La cuestión es que MySQL generalmente 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 podrían estar iniciando sesión en este archivo, probablemente desee usargrep
para ver los mensajes de mysql ytail
ver solo los más recientes. Todos juntos, eso podría verse así: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'. Averigua qué está realmente mal con tu sistema y obtendrás un mejor resultado mucho más rápido.
fuente
.cnf
. Eso lo explica. Ahora puedo dejar de intentar cosas al azar y abordar el problema real. Gracias.Otra solución es editar /etc/my.cnf e incluir el host en la sección [cliente]
Y luego reiniciando el servicio mysql.
Esta solución se probó en: Versión del servidor: 5.5.25a-log Distribución de origen
fuente
Tuve el mismo problema y fue causado por una actualización de los controladores mysql cuando se estaba ejecutando el servidor mysql. Lo arreglé simplemente reiniciando mysql y apache2:
fuente
mysql
no estaba corriendo. Corrísudo service mysql start
después de corrersudo service mysql status
para verificar que no estaba corriendo.En mi caso, estaba usando Centos 5.5. Descubrí que el problema se debía a que el servicio mysql se detuvo de alguna manera. Entonces comencé el servicio mysql con el comando:
Entonces ... error tonto.
fuente
Si todo funcionó bien y acaba de comenzar a ver este error, antes de hacer cualquier otra cosa, asegúrese de no quedarse sin espacio en disco:
Si el volumen donde se crea mysql.sock está al 100% de uso, 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 archivos de registro antiguos.
fuente
intente con -h (host) y -P (puerto):
mysql -h 127.0.0.1 -P 3306 -u root -p
fuente
Esto debería servirte bien. Es posible que haya cambiado algunos comandos que afectaron las configuraciones de mysql.
fuente
systemctl start mariadb.service
en Fedora 22 o RedHat 7. Después de eso, es posible establecer la contraseña de root.Hay muchas soluciones a 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) Ejecutar
sudo /etc/init.d/mysql restart
Eso debería comenzarlo.
fuente
Recibí el error porque estaba ejecutando MAMP y mi archivo .sock estaba en una ubicación diferente. Acabo de agregar un enlace simbólico donde la aplicación pensó que debería ser lo que señalaba dónde estaba realmente y funcionó a las mil maravillas.
fuente
También descubrí que este era un problema de permisos. Comparé los archivos de MySQL con una instalación que funciona (tanto en Debian 6 squeeze) y tuve que hacer los siguientes cambios de propiedad (donde
mydatabase
hay alguna base de datos que tenga).Propiedad
mysql:mysql
:Propiedad
mysql:root
:Propiedad
mysql:adm
:fuente
Para mí, esto fue simplemente un caso de MySQL que tardó mucho en cargar. Tengo más de 100,000 tablas en una de mis bases de datos y eventualmente comenzó pero obviamente tiene que tomar mucho tiempo en este caso.
fuente
Si está utilizando la versión Micro de AWS (Amazon Web Services), entonces es un problema de memoria. Cuando corrí
desde la terminal diría
Así que intenté lo siguiente y simplemente fallaría.
Después de mucho buscar, descubrí que tienes que crear un archivo de intercambio para que MySQL tenga suficiente memoria. Las instrucciones se enumeran: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html .
Entonces, pude reiniciar mysqld.
fuente
siempre puede iniciar el servidor mysql especificando la ubicación del archivo mysql.sock usando la
--socket
opción comoEsto funcionará incluso si la ubicación del archivo de socket se especifica en una ubicación diferente en el archivo my.cnf.
fuente
Para aquellos cuya solución no funcionó, intente:
compruebe si my.cnf está presente
y asegúrese de tener solo una dirección de enlace de la siguiente manera:
dirección-enlace = 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) simplemente instálelo
apt-get install nano
y, una vez, presione Ctrl + X para salir, no olvide decir Y para guardar y usar el mismo archivo)fuente
También tuve este problema al intentar iniciar el servidor, muchas de las respuestas aquí que solo dicen que iniciar el servidor no funcionaron. Lo primero que puede hacer es ejecutar lo siguiente para ver si hay algún error de configuración:
Tuve un error que apareció:
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
/var/log/mysql/error.log
archivo tenía:En base a 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.Esto permitió que el servidor se iniciara y pude conectarme y ejecutar consultas, sin embargo, al verificar mi archivo de registro de errores, se estaba llenando rápidamente con varias decenas de miles de líneas como esta:
Basado en una sugerencia de aquí , para arreglar esto hice un mysqldump y restauré todas las bases de datos (vea el enlace para otras soluciones).
Todo parece estar funcionando como se esperaba ahora.
fuente
/var/log/mysql/error.log
ayudó en mi caso. Hubo una solución[ERROR] Can't init tc log
rápida con la siguiente respuesta: dba.stackexchange.com/a/185006/163583Agregando
a la lista de pramistas en su conexión funcionó para mí.
fuente
Esto fue lo suficientemente bueno para mi
fuente
Me encontré con este problema hoy. Ninguna de estas respuestas proporcionó la solución. Tenía que hacer los siguientes comandos (que se encuentran aquí https://stackoverflow.com/a/20141146/633107 ) para que mi servicio mysql se inicie:
Esto se indicó en parte por los siguientes errores en /var/log/mysql/error.log:
También vi el error completo del disco, pero solo cuando ejecuté comandos sin sudo. Si la verificación de permisos falla, informa que el disco está lleno (incluso cuando su partición ni siquiera está casi llena).
fuente
CentOS 7, 64 bits. Instalación nueva.
En mi caso, el error se debió a que no tenía instalado el servidor MySQL y el cliente MySQL correctos.
Utilizando
yum
,mariadb
eliminé una edición mysql-community. Descargué las rpm para el cliente y el servidor del 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
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.Ingresé a MySQL usando la contraseña del archivo .mysql_secret:
mysql -uroot -pdxM01Xfg3DXEPabpf
. Tenga en cuenta quedxM01Xfg3DXEPabpf
es la contraseña mencionada en el archivo .mysql_secret.y luego 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 desde entonces.
fuente
Trabajó para mí, estoy usando Centos
fuente
Esto no responde directamente a su pregunta, sino un subconjunto, es decir, el uso de PythonAnywhere. Seguí tropezando con esta pregunta cuando buscaba una solución, así que la agregué aquí con la esperanza de que ayude a otros en mi situación.
PythonAnywhere decidió cambiar los nombres de host de conexión de la base de datos para mejorar la eficiencia y la confiabilidad, como se detalla aquí :
Por lo tanto, deberá actualizar su nombre de host al valor resaltado anteriormente.
fuente
Acabo de tener este problema. después de un día de verificación, finalmente tengo la respuesta con eso. El archivo mysql.sock se crea cuando se inicia MariaDB y se elimina cuando se cierra MariaDB. No existirá si MariaDB no se está ejecutando. tal vez no instaló MariaDB. PUEDE SEGUIR LA INSTRUCCIÓN A CONTINUACIÓN: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 MEJOR
fuente
Tuve este error de socket y básicamente se redujo al hecho de que MySQL no se estaba ejecutando. Si ejecuta una instalación nueva, asegúrese de instalar 1) el paquete del sistema y 2) el instalador del panel (mysql.prefPane). El instalador del panel le permitirá ir a las Preferencias de su Sistema y abrir MySQL, y luego ejecutar una instancia.
Tenga en cuenta que, en una instalación nueva, necesitaba restablecer mi computadora para que los cambios surtan efecto correctamente. Después de un reinicio, obtuve una nueva instancia ejecutándose y pude abrir una conexión a localhost sin ningún problema.
También es de destacar que aparentemente tenía instaladas versiones anteriores de MySQL, pero había eliminado el panel, lo que facilita la ejecución de una instancia de MySQL para usuarios de Mac.
Un buen enlace para este proceso de reinstalación: http://www.coolestguyplanettech.com/how-to-install-php-mysql-apache-on-os-x-10-6/
fuente