Comandos para bases de datos MySQL

Estos son algunos comandos útiles usados por MySQL para manejar bases de datos. Es un listado básico donde no hay mucha explicación. Simplemente es una guía para comenzar a trabajar con las bases de datos Mysql.

Obtener información sobre las bases de datos Mysql :

  • show databases; – Listar todas las bases de datos.
  • connect [database]; – Conectarse a esa base de datos.
  • show tables; – Listar todas las tablas de una base de datos.
  • show table status; – Muestra informacion sobre las tablas de la base de datos.
  • describe [table]; – Muestra la estructura de una tabla de la base de datos.

Manejo de bases de datos Mysql :

  • drop table [table]; – Elimina la tabla, incluyendo registros y estructura.
  • drop table if exists [table]; – Elimina la tabla de la base de datos, pero antes verifica que exista.
  • truncate table [table]; – Elimina los registros, pero mantiene la esrtuctura de la tabla.
  • rename table [table] to [nuevo nombre de tabla]; – Renombra una tabla de la base de datos.

Algunos comandos útiles para consultas a las bases de datos Mysql:

  • select * from [table] limit [numero]; – Muestra los registros desde el 1 hasta [numero].
    Ej. select * from tabla limit 10; – Muestra los 10 primeros registros.
    select * from [table] limit [numero inicio],[numero]; – Muestra los registros desde el numero de inicio hasta numero inicio + numero.
    Ej. select * from tabla limit 11,10; – Muestra desde registro 11 hasta el 20.

Bases de datos Mysql en consola :

  • $ mysqladmin -u -p create – crear base de datos.
  • $ mysqladmin -u -p drop – borrar la base de datos.
  • $ mysqladmin -u root -p proc – listar procesos en ejecucion en el servidor de bases de datos Mysql.
  • $ mysqladmin -u root -p -i 5 status – verificar status cada 5 segundos.
  • $ mysqldump –opt -u -h -p > /path/to/file – Exportar base de datos a un archivo.
  • $ mysqldump –opt -u -h –all-databases -p > /path/to/file – Exportar TODAS las bases de datos a un archivo.
  • $ mysql -h -u -p < /path/to/file – Importar un archivo a la base de datos a mysql
  • $ mysqlcheck -o -u root -p –all-databases – Optimizar las bases de datos mysql.

Verificación y reparación de errores en las bases de datos Mysql :

  • check table [table]; – Verificar la tabla.
  • repair table [table]; – Reparar la tabla rota.

Algún otro comando útil de MySQL?? Se aceptan sugerencias¡¡¡

Activar MySQL Log Slow Queries

Comprobamos que, efectivamente, tenemos el log de querys lentas desactivado.

# mysqladmin var -uusario -ppassword |grep log_slow

| log_slow_queries | OFF

Editamos de la siguiente forma el archivo de configuración de MySQL, normalmente ubicado en /etc/my.cnf


log-slow-queries=/var/log/mysql-slow-queries.log
long_query_time = 1
log-queries-not-using-indexes

log-slow-queries, establece el lugar físico del archivo de log
long_query_time, establece a partir de que cantidad de segundos se considera lenta una query
log-queries-not-using-indexes, también logueará las queries lentas que no utilizen índices

Creamos el fichero mysq-slow-queries y ajustamos permisos


# touch /var/log/mysql-slow-queries.log
# chown mysql.root/var/log/mysql-slow-queries.log

Y reiniciamos el servidor

# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start

Cuando tengamos algo de información útil en el archivo, podemos atacar directamente a las consultas más lentas, filtrandolas por la cantidad de tiempo empleado usando mysqldumpslow

# mysqldumpslow -t 10 /var/log/mysql-slow-queries.log

Fuente:  r u b e n o r t i z .es

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

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

Script al estilo Top para MySQL

mysql

Aunque hay herramientas enfocadas para el seguimiento procesos en MySQL, algunas de pago, otras gratis, pues para mi es mas fácil crear un pequeño script en bash que las mostrara estilo «top».

#!/bin/bash
for i in `seq 1 100000`;
do
tput clear
date
echo "____________________________________________________________________________________"
mysqladmin -uUSUARIO --port=3306 --host=localhost -pPASSWORD processlist | awk '{ if ($12 &gt; 0) print $0}' | grep -v binlog | cut -d \| -f2,5,6,7,8,9
echo " "
uptime
mysqladmin -uUSUARIO --port=3306 --host=localhost -pPASSWORD processlist | wc -l
sleep 5
done

Rapido y sencillo, suficiente para ver los queries que se quedan atascados en MySQL.