Realizando una actualización de MySQL me encontré con una mala costumbre bastante común.
Al ejecutar el mysql_upgrade fallaba:
# mysql_upgrade Looking for 'mysql' as: mysql Looking for 'mysqlcheck' as: mysqlcheck FATAL ERROR: Upgrade failed
Por lo que me decidí a ejecutar los comandos manualmente:
mysqlcheck --all-databases --check-upgrade --auto-repair mysql < fix_priv_tables mysqlcheck --all-databases --check-upgrade --fix-db-names --fix-table-names
Ejecutando el primero (mysqlcheck) me encontré con el problema real:
# mysqlcheck --all-databases --check-upgrade --auto-repair mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
En el my.cnf estaban añadidas las opciones (cómo dónde deja el socket el mysqld) para cada binario que se utiliza:
[mysql] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqldump] socket = /var/run/mysqld/mysqld.sock
En lugar de utilizar la sección genérica "client":
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock
Mediante esta sección añadimos las opciones para cualquier cliente, por lo que el mysql_upgrade no fallaría. En caso que alguno de ellos necesite alguna opción diferente siempre se puede añadir para él opciones específicas.
Tags: MySQL
Malas costumbres en el my.cnf was first posted
on August 27, 2014 at 6:31 am.