Recopilación de comandos MySQL desde consola

Después de una temporada sin tiempo ni para escribir un triste post hoy me he propuesto ponerme al día con unos cuantos que tenia empezados.

En este post intento recoger una serie de comandos útiles si en tu día a día te toca trabajar con MySQL desde la consola.

  • Conectarte al interprete de MySQLcon el usuario USUARIO

] # mysql -u USUARIO -p

  • Ver / Listar las bases de datos que hay dadas de alta en el servicio
SHOW databases;
  • Ver / Listar los usuarios dados de alta en el servicio
SELECT * FROM mysql.user;

  • Seleccionar / Utilizar una base de datos BD

USE BD;

  • Crear usuario con todos los privilegios / Dar todos los privilegios a un usuario USUARIO desde una dirección HOST con la contraseña CLAVE para cierta base de datos BD o para todas
GRANT ALL PRIVILEGES ON BD.* TO USUARIO‘@’HOST IDENTIFIED BY ‘CLAVE‘ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO USUARIO‘@’HOST IDENTIFIED BY ‘CLAVE‘ WITH GRANT OPTION;
  • Crear usuario con ciertos privilegios / Dar ciertos privilegios a un usuario USUARIO desde una dirección HOST con la contraseña CLAVE para cierta base de datos BD o para todas
GRANT PRIVILEGIO [, PRIVILEGIO] …. ON BD.* TO ‘USUARIO‘@’HOST‘ IDENTIFIED BY ‘CLAVE‘;
    • ALTER: Modificar tablas con ALTER TABLE
    • CREATECrear una nueva base de datos o tabla
    • DELETEEliminar registros de las tablas
    • DROPEliminar bases de datos o tablas
    • INDEXCrear o eliminar índices de tablas
    • INSERTCrear registros en las tablas
    • SELECTListar registros de las tablas
    • UPDATEModificar registros de las tablas
  • Listar privilegios para un usuario USUARIO desde una dirección HOST

SHOW GRANTS FOR ‘USUARIO‘@’HOST‘;

  • Eliminar / Quitar privilegios para un usuario USUARIO desde una dirección HOST para una base de datos BD

REVOKE PRIVILEGIO [, PRIVILEGIO] … ON BD.* FROM ‘USUARIO‘@’HOST‘;

  • Eliminar / Quitar un usuario USUARIO desde una dirección HOST

DROP USERUSUARIO‘@’HOST‘;

  • Cambiar contraseña CLAVE a un usuario USUARIO desde una dirección HOST

SET PASSWORD FOR ‘USUARIO‘@’HOST‘ = PASSWORD(‘CLAVE‘);

  • Migrar base de datos de un servidor a otro directamente

] # mysqldump -uUSUARIO -pCLAVE BD | mysql -h HOST_DESTINO -uUSUARIOCLAVE BD

  • Exportar todas la base de datos MySQL a fichero con fecha en el nombre comprimido con gzip

] # mysqldump –password=CLAVE –single-transaction –all-databases | gzip -9 >RUTA_DESTINONOMBRE_`date +%Y-%m-%d`.sql.gz