Solución al error: MySQL query failed: Incorrect information in file: ‘./psa/misc.frm’

Síntomas

En la página Inicio de Sesión de Parallels Plesk Panel en https://plesk.host.name:8443, aparece el siguiente error:

ERROR: PleskMainDBException
MySQL query failed: Incorrect information in file: ‘./psa/misc.frm’

0: /usr/local/psa/admin/plib/common_func.php3:216
db_query(string ‘select param, val from misc’)
1: /usr/local/psa/admin/plib/common_func.php3:513
get_param(string ‘mysql41_compatible’)
2: /usr/local/psa/admin/plib/common_func.php3:410
db_set_names()
3: /usr/local/psa/admin/plib/common_func.php3:389
db_connect_real(string ‘localhost’, string ‘admin’, string ‘***********’, string ‘psa’)
4: /usr/local/psa/admin/plib/common_func.php3:369
db_connect()
5: /usr/local/psa/admin/auto_prepend/auth.php3:87

Causa

La causa de este problema son unos permisos incorrectos al directorio /tmp. Por este motivo, MySQL no puede crear sus archivos temporales correctamente para el motor InnoDB en el inicio.

Los permisos correctos son:

~# ls -ld /tmp/
drwxrwxrwt 4 root root 36864 Aug  8 08:41 /tmp/
~#

Resolución

Corrija los permisos con el siguiente comentario:

~# chmod 1777 /tmp

Información Adicional

Para ver el error, actualice la sección [mysqld] en el archivo /etc/my.cnf con esta línea:

/etc/my.cnf
--->8---
[mysqld]
innodb_force_recovery = 4
---8<---

Ahora reinicie el servicio con:

~# /etc/init.d/mysqld restart
Stopping MySQL:                                            [  OK ]
Starting MySQL:                                            [  OK ]
~#

En el archivo de registro de errores de MySQL debería aparecer el siguiente error:

/var/log/mysqld.log
--->8---
^G/usr/libexec/mysqld: Can't create/write to file '/tmp/ib1suXEE' (Errcode: 13)
020326 22:26:17  InnoDB: Error: unable to create temporary file; errno: 13
020326 22:26:18 [Note] /usr/libexec/mysqld: ready for connections.
---8<---

La ubicación del archivo de registro de errores de MySQL se define en el archivo de configuración:

~# grep log-error /etc/my.cnf
log-error=/var/log/mysqld.log
~#

Convertir un servidor slave en master en MySQL

A veces ocurre… que el servidor maestro MySQL se nos ha corrompido o por X motivos, ya no se puede utilizar, y la única opción que nos queda es enviar el curriculum a otra empresa, o bien si hicimos los deberes correctamente, deberíamos de tener un servidor slave dónde hay una réplica más o menos reciente de los datos del antiguo maestro, apartir de ahí, estamos de suerte, ya que en algún caso en concreto, nos interesará poder convertir esa base de datos esclava en maestra para que nuestras aplicaciones la puedan utilizar y volver a crear slaves apartir de esta.

Para convertir un servidor slave a master en MySQL, solo tendremos que realizar estos sencillos pasos.

(Todos estos pasos los realizamos en nuestro slave)

# mysql> STOP slave;
# mysql> RESET slave;

# Borramos en el fichero my.cf toda la configuración que teniamos de nuestro slave y añadimos log-bin para que actue como maestro
# Reiniciamos MySQL
# Indicamos a nuestras aplicaciones la nueva ubicación del nuevo maestro, y apartir de ahora, ya se podrían crear esclavos apartir de este nuevo maestro

Y voila¡¡¡¡¡¡¡¡ ya hemos convertido el servidor mysql slave en servidor master¡¡¡

Replicación y ditribución de carga de MySQL

Replicación es la copia sincronizada entre dos o más servidores de bases de datos, de forma de que cualquiera de ellos puede entregar los mismos resultados a sus clientes. Se basa en un esquema «maestro-esclavos», en el que el maestro mantiene la base de datos original y los esclavos las copias.

El funcionamiento es el siguiente: los servidores esclavos se conectan al maestro para consultar sus logs y asg mantenerse informados de las operaciones de modificación que ha realizado (insert, delete, update, …) para a su vez poder realizarlas también ellos y mantener una replica exacta de la base de datos del servidor maestro. Los servidores esclavos sólo sirven para consultas.

Esto nos proporciona:

  • Replica automática de los datos en máquinas remotas.

  • Balanceo de la carga (de las consultas).

  • Alta disponibilidad mediante redundancia de servidores.
  • Si cae el maestro

  • Copias de seguridad en esclavos sin interrumpir maestro.
Continuar leyendo «Replicación y ditribución de carga de MySQL»

Manual de Referencia MySQL 5 en español

//theora.com/images/MySQL.jpg

Descripción:

Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original.

Tabla de contenidos:

* Prefacio.
* 1. Información general.
* 2. Instalar MySQL.
* 3. Curso (tutorial) de MySQL.
* 4. Usar los programas MySQL.
* 5. Administración de bases de datos.
* 6. Replicación en MySQL.
* 7. Optimización de MySQL.
* 8. Programas cliente y utilidades MySQL.
* 9. Estructura de lenguaje.
* 10. Soporte de conjunto de caracteres.
* 11. Tipos de columna.
* 12. Funciones y operadores.
* 13. Sintaxis de sentencias SQL.
* 14. Motores de almacenamiento de MySQL y tipos de tablas.
* 15. El motor de almacenamiento InnoDB.
* 16. MySQL Cluster.
* 17. Introducción a MaxDB.
* 18. Extensiones espaciales de MySQL.
Continuar leyendo «Manual de Referencia MySQL 5 en español»

La biblia de MySQL – Manual en español de MySQL [PDF]

//theora.com/images/MySQL.jpg

MySQL HA CRECIDO. Lo que durante un tiempo se consider6 como un sencillo juguete para su uso en sitios Web, se ha convertido en la actualidad en una solucion viable y de mision critica para la administracion de datos. Antes, MySQL se consideraba como la opcion ideal para sitios Web; sin embargo, ahora incorpora muchas de las funciones necesarias para otros entornos y conserva su gran velocidad. MySQL supera desde hace tiempo a muchas soluciones comerciales en velocidad y dispone de un sistema de permisos elegante y potente, y ahora, ademas, la version 4 incluye el motor de almacenamiento InnoDB compatible con ACID.
MySQL 4 es rapido, dispone de funciones de volcado online e incorpora una gran cantidad de funciones nuevas. Son pocas las razones para desechar MySQL como solucion de base de datos. MySQL AB, la compaiiia responsable del desarrollo de MySQL, dispone de un sistema de asistencia eficiente y a un precio razonable, y, como ocurre con la mayor parte de las comunidades de codigo abierto, encontrara una gran cantidad de ayuda en la Web. Las funciones estandar no incluidas todavia en MySQL (corno las vistas y 10s procedimientos almacenados) estan en fase de desarrollo y es posible que esten disponibles para cuando lea estas lineas.
Son muchas las razones para escoger MySQL como solucion de mision critica para la administracion de datos.

Continuar leyendo «La biblia de MySQL – Manual en español de MySQL [PDF]»