Este fue el error:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Este fue mi caso: cuando se estaba actualizando CentOS con yum, se encontraron los siguientes errores con los paquetes de mysql:
Updating: mysql-server 19/47 Stopping mysqld: [ OK ] /usr/bin/mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect FATAL ERROR: Upgrade failed Stopping mysqld: [ OK ] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) Stopping mysqld: [ OK ] MySQL Daemon failed to start. Starting mysqld: [FAILED] Non-fatal POSTIN scriptlet failure in rpm package mysql-server-5.5.24-6.el5.art.x86_64 error: %post(mysql-server-5.5.24-6.el5.art.x86_64) scriptlet failed, exit status 1 Updating: php-gd
Esto generó un problema con Plesk Panel (10.x) y obviamente, el servicio de mysqld no arrancaba mostrando el error:
/etc/init.d/mysqld start MySQL Daemon failed to start. Starting mysqld: [FAILED]
Obviamente sucedía lo mismo con el alias:
service mysqld start
De igual manera, cualquier conexión que quiera establecer con mysql el error era:
mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Por supuesto, el mismo error se desplegaba en el browser si intentaba acceder al Plesk Panel.
Así que después de ardua investigación, encontré la siguiente solución:
- Desde una sesión de ssh console, editar el archivo:
vi /etc/my.cnf
- Comentar con # las líneas en este orden, conforme las vayas encontrando:
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-bdb pid-file=/var/run/mysqld/mysqld.pid skip-bdb
- Para que el archivo quede así (copiarlo y pegarlo si lo deseas):
[mysqld] local-infile=0 #datadir=/var/lib/mysql #socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 # Comentar esta directiva (skip-networking) nos permite conectarnos a la DB de manera remota, # por ejemplo, desde un cliente como Navicat # skip-networking # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 #skip-bdb innodb_buffer_pool_size=2M innodb_additional_mem_pool_size=500K innodb_log_buffer_size=500K innodb_thread_concurrency=2 [mysqld_safe] log-error=/var/log/mysqld.log #pid-file=/var/run/mysqld/mysqld.pid #skip-bdb innodb_buffer_pool_size=2M innodb_additional_mem_pool_size=500K innodb_log_buffer_size=500K innodb_thread_concurrency=2
La razón del porqué esto funciona la encontré en este post:
Uno de los ponentes (http://forums.cpanel.net/members/cpanelkenneth/) dice lo siguiente:
"The basedir directive instructs MySQL where to find everything it needs to function:
binaries, libraries, data, etc. Hence by stipulating basedir=/var/lib
, MySQL will
search /var/lib
for everything needed to perform its functions.
For typical installs via RPM, this directive is not needed and should not be used.
For a more exhaustive description of this directive, please consult the MySQL manual."
Que en español quiere decir:
"La directiva basedir, le dice a MySQL donde encontrar
cada cosa que necesita para funcionar: binarios, librerías, datos, etc. Por lo tanto,
estipulando o estableciendo la directiva basedir=/var/lib
, MySQL buscará en la ruta
/var/lib
para cada cosa que necesite para ejecutar sus funciones.
Para instalaciones típicas vía RPM, esta directiva no es necesaria
y no debería ser usada
.
Para una más exhaustiva descripción de esta directiva, consultar el manual MySQL."
Qué simple ¿no? Pero para encontrar la solución, me hizo sudar frío…
No me ha funcionado... sigo con el problema.. :(
ResponderEliminarpues realice lo indicado y me sigue dando fallo al reiniciar mysql, las lineas que comente fueron:
ResponderEliminar#pid-file=/var/run/mysqld/mysqld.pid
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
tienes alguna idea que puede estar pasando.?
siempre me dice que es el sockey que no lo encuentra
Funciono!!! Muchas gracias!
ResponderEliminarMuchas Gracias, x tu aporte. Funciona!
ResponderEliminarGracias , me salvaste.
ResponderEliminar