Trucos para MySQL

Copia de seguridad de una base de datos en mysql

mysqldump -u root -p base_de_datos>copia.sql

Realizar una copia de seguridad de todas las bases de datos

mysqldump -u root -p --all-databases > copia.sql

Realizar una copia de seguridad de una tabla de una base de datos

mysqldump -u root -p base_datos tabla > fichero.sql

para restaurarla

mysql -p base_de_datos<copia.sql

Mysqlcheck

Opciones más usadas en mysqlcheck

-c, –check comprueba una tabla
-a, –analyze Analiza la tabla
-o –optimize Optimiza la tabla
-r, –repair Repara problemas en la tabla
–auto-repair Comprueba la tabla y la repara si está erronea
-A, –all-databases Comprueba todas las bases de datos
-B, –databasesProcesa todas las tablas de una base de datos
-g, –check-upgrade Comprueba los cambios en las dependencias al cambiar de versión

Reparar todas las BDD

mysqlcheck -u root -p –-all-databases -r 

Actualizar BDD

Si hemos actualizado mysql a una nueva versión debemos ejecutar

mysql_upgrade -u root -p
para actualizar el estado de tu base de datos a la nueva versión de MySQL.

Para conectarnos remotamente a myslq

Existe varios programas para administrar remotamente una bases de datos mysql. Uno de ellos es mysqlcc http://sourceforge.net/projects/mysqlcc/

Antes que nada para poder conectarnos tenemos que dar permisos al usuario en la BDD. Para ello Nos conectamos localmente a la BDD

mysql -uUSERNAME -pPASSWORD mysql<code>
<code> mysql> grant all on * to 'USERNAME' identified by 'PASSWORD'; 

O bien si queremos darle permisos a una bases de datos en particular desde un equipo en particular

GRANT ALL ON basededatos.* TO usuario@'ipmaquinaremota' IDENTIFIED BY 'PASSWORD';

Solucionar error connecting to database: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

Para solucionar dicho error hay que borrar los siguientes ficheros :

 
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1

Saber el tamaño de las tablas

 SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`  FROM Information_schema.TABLES  ORDER BY (data_length + index_length) ASC; 

Saber cuales hacen uso del motor innoDB

SELECT COUNT(1) EngineCount,engine FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','performance_schema','mysql')
GROUP BY engine;