MySQL ERROR 1104 Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok

mysql logo
ERROR 1104: The SELECT would examine too many records and probably take a very long time. Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok

Hay veces que ciertas aplicaciones utilizan unas cantidades de recursos que MySQL por defecto limita para evitar consumir recursos por tiempo prolongado.
Continue reading “MySQL ERROR 1104 Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok”

Percona Server cotejamiento

mysql logo

Estos días trabajamos en Rsystem (ITnet Consulting) el lanzamiento de un proyecto (start-up). El proyecto requería una base de datos MySQL. De inicio montamos Percona Server e hicimos la importación de la base de datos suya de su entorno viejo al nuestro actual. Y es ahí donde nos avisaron del problema. Por defecto, el cotejamiento de Percona Servers es latin. Vamos a cambiarlo a utf para que los carácteres especiales se guarden bien.
Continue reading “Percona Server cotejamiento”

MySQL 5.5

mysql logo

En otro post, trataremos la instalación de MySQL 5.5 en CentOS, que por cierto, la primera vez no es sencilla. MySQL 5.5 se convirtió en estable el 15 de diciembre de 2010. Ahora descubro que GA es Generally Available :), vaya tela… En definitiva, algunos patchs de google incorporados a la suite 5.5, hacen más que probable que 5.5 tenga un rendimiento bastante superior a otras versiones. Lo digo sin todavía haber hecho los pertinentes test. Pero tiene buenta pinta. Continue reading “MySQL 5.5”

MySQL – optimizar base de datos

mysql logo

Pequeño ejemplo para optimizar las tablas. El ejemplo es válido para instalaciones con Plesk pero vendría a ser algo así.

Si encuentra tablas corruptas las reparará.

#!/bin/sh
 MYSQLCHECK="$(which mysqlcheck)"
 USER="admin"
 PASSWORD="$(cat /etc/psa/.psa.shadow)"
 $MYSQLCHECK -Aao --auto-repair -u$USER -p$PASSWORD


MySQL – Recuperar password root

Me dejo anotado esto, que nunca se sabe. Mejor no tener que utilizarlo nunca.


# /etc/init.d/mysql stop
# /usr/bin/mysqld_safe --skip-grant-tables &
# mysql -u root

NOTA: un día intente ejecutar este paso, y me daba problemas al utilizar el &. Quité el & y abrí otra terminal para seguir con la operación.

Accedemos dentro de la consola como root y ahora actualizamos el password


# Welcome to the MySQL monitor. Commands end with ; or \g.
# Your MySQL connection id is 24
# Server version: 5.0.48 Source distribution
# Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
# mysql> use mysql;


# mysql> update user set password=PASSWORD("nuestroNUEVOpassword")
where User='root';
# mysql> flush privileges;
# mysql> quit

Paramos e iniciamos el servicio y nos logueamos ya con el nuevo password.

# /etc/init.d/mysqld stop

STOPPING server from pid file /var/run/mysqld/mysqld.pid
080819 15:34:49 mysqld ended

# /etc/init.d/mysqld start

UPDATE: para el último MySQL 5.7 este método no sirve ya que el campo password de la
tabla user ya no existe.

Podemos adaptar la query para ejecutar algo tipo:

# UPDATE user SET authentication_string=PASSWORD("mypassword") WHERE user='root@localhost';

http://stackoverflow.com/questions/32208000/update-user-password-in-mysql-5-7

Mysqldump – Backup y restore

mysql logo

La finalidad de escribir estos pequeños artículos, no es la de redactar complejos tutoriales porque para eso ya hay miles de sitios. Pero a mi resulta útil tener pequeños documentos online siempre, que puedo consultar a todas a horas y son de indudable valor para mi trabajo, más si la memoria no es una de tus virtudes 😀

El gran problema del Phpmyadmin es, dejando de lado su velocidad o rendimiento según la conexión que tengas, es el tema de la restauración de la base de datos. Cuando tenemos una base de datos mediana(he tenido problemas con bases de datos de 20MB) ya es complicado hacer el restore vía web. Y si, como puede ocurrir fácilmente, tenemos un monstruo de base de datos, no es viable.

Entonces entra en juego el famoso comando mysqldump. Hablamos en este post sobre MySQL en entornos Linux.

Lo primero es hacer el backup de la base de datos que vamos a mover. Desde el bash, utilizamos el comando mysqldump, que viene con la mayoría de instalaciones de MySQL actuales. Después comprimimos el archivo con tar y gz.

Continue reading “Mysqldump – Backup y restore”