Trucos para MySQL

Copia de seguridad de una base de datos en mysql

<sxh>mysqldump -u root -p base_de_datos>copia.sql</sxh>

Realizar una copia de seguridad de todas las bases de datos

<sxh>mysqldump -u root -p –all-databases > copia.sql</sxh>

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

<sxh>mysqldump -u root -p base_datos tabla > fichero.sql</sxh>

para restaurarla

<sxh>mysql -p base_de_datos<copia.sql</sxh>

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, –databases	Procesa 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

<sxh>mysqlcheck -u root -p –-all-databases -r </sxh>

Actualizar BDD

Si hemos actualizado mysql a una nueva versión debemos ejecutar <sxh>mysql_upgrade -u root -p</sxh> 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

<sxh> 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; </sxh>

Saber cuales hacen uso del motor innoDB

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