Portada Bases de Datos Convertir Tablas InnoDB a Barracuda
Muchos gestores de contenidos en sus Bases de Datos MySQL utilizan tablas InnoBD, por ejemplo: PrestaShop, Joomla o Moodle, entre otros. Por su parte, WordPress suele usar tablas MyISAM y, aunque parezca mentira, hoy no vamos a hablar de WordPress, sino que vamos a centrarnos en los pasos a seguir para convertir tablas InnoBD a Barracuda, así como que script utilizar para que haga el trabajo por nosotros.
Este cambio básicamente consiste en cambiarle el formato a las tablas InnoDB, por defecto vienen con formato COMPACT y, lo que vamos a hacer, es pasarlas a formato COMPRESSED.
Es posible que un mensaje en nuestro gestor de contenidos nos sugiera este cambio, tal y como mostramos en esta captura de pantalla de Moodle:
Las Bases de Datos MySQL de los planes de alojamiento web SSD que tenemos en Hostinet permiten crear tablas con los motores de almacenamiento (storage-engine) más conocidos en la actualidad: MyISAM e InnoDB. Ambos motores se encargan de gestionar lo que es la información de una tabla.
Según el gestor de contenidos que utilicemos es conveniente usar un motor de almacenamiento u otro. En lo que se refiere a InnoDB sería la opción ideal si necesitamos transacciones, claves foráneas y bloqueos. Por lo que lo convierte en el motor de almacenamiento ideal para plataformas de comercio electrónico como PrestaShop o de enseñanza como Moodle.
Para convertir las tablas InnoBD a Barracuda lo primero que tenemos que hacer es asegurarnos de que nuestras tablas son InnoBD, ya que de lo contrario no tendría mucho sentido.
Por lo tanto, vamos a partir de la base de que tenemos una Base de Datos MySQL con tablas InnoBD, de no ser así, podemos consultar este artículo en el que se indica cómo Convertir Tabla de MyISAM a InnoDB en cPanel.
Para ello, primero debemos loguearnos en el panel de gestión del Hosting (cPanel).
Varias formas de acceder a cPanel: – Mediante el dominio (si apunta a los servidores de Hostinet): -> https://www.nuestrodominio.com/cpanel – Mediante el servidor (el dominio no apunta a los servidores de Hostinet) -> https://hostxx.hostinet.com/cpanel (sustituyendo xx por el número del servidor) – A través del área de clientes de Hostinet
Una vez dentro de cPanel, tan solo hay que dirigirse hasta la sección de "Bases de Datos" y hacer click en la primera opción: phpMyAdmin.
Dentro de phpMyAdmin, en el lateral izquierdo, se listarán todas las bases de datos que tengamos en el hosting. Tan solo debemos pinchar sobre la que queramos y ver si en la columna de “tipo” pone InnoBD.
Si es así, el siguiente paso sería cambiar el formato de COMPACT a COMPRESSED.
Hay dos maneras de cambiar una tabla InnoBD de COMPACT a COMPRESSED, pero como es lógico no vamos a querer cambiar solo una tabla, sino varias, por lo que estas dos opciones las podemos descartar, aunque las indicamos de todas formas por si pudiera darse el caso de que solo necesitáramos cambiar una.
Elegimos una tabla del lado izquierdo y, cuando se cargue en la derecha, hacemos click en la pestaña de “Operaciones” del menú superior.
Acto seguido pasamos a buscar la sección "Opciones de la tabla" y, en esta sección, localizamos la opción "ROW FORMAT". En el seleccionable cambiamos "COMPACT" por “COMPRESSED” y le damos al botón de Continuar. Con ello ya estaría.
Para utilizar esta opción, dentro de phpMyAdmin -en el menú de la parte superior- hay que hacer click en la pestaña de “SQL”. Y tras ello escribir el siguiente comando, siempre y cuando sepamos el nombre de la tabla, ya que tenemos que sustituir “nombredelatabla” por el nombre que corresponda:
ALTER TABLE nombredelatabla ROW_FORMAT=COMPRESSED
Por cierto, no nos podemos olvidar de darle al botón de Continuar para que se guarden el cambio.
Las dos opciones que hemos indicado previamente están bien si solo se desea cambiar una tabla InnoBD de COMPACT a COMPRESSED, pero si tenemos muchas no es la mejor solución…
La opción más recomendada pasa por crear un script que haga el trabajo por nosotros, aunque puede que para los más inexpertos no resulte una tarea sencilla, ya que necesitamos saber:
– La IP de nuestra Base de Datos MySQL para ponerla en “ipdelabasededatosmysql”. – El nombre de la base de datos MySQL para introducirlo en “nombredelabasededatos” – El usuario de la Base de Datos MySQL para ponerlo en “usuariodelabasededatos” – La contraseña del usuario de la base de datos MySQL para ponerlo en “contraseñadelusuario”. (Todos estos datos los podemos sacar del propio cPanel).
Por último, tendríamos que crear un archivo script.php dentro de nuestro Hosting y ejecutarlo escribiendo la url completa en un navegador web, por ejemplo: https://www.nuestrodominio.com/script.php
El scrip a crear y subir al Hosting sería el siguiente:
<? // Datos necesarios a rellenar para establecer una conexión con la base de datos MySQL mysql_connect("ipdelabasededatosmysql","usuariodelabasededatos","contraseñadelusuario"); mysql_select_db("nombredelabasededatos"); // Detalles para cambiar las tablas InnoBD de COMPACT A COMPRESSED (no hay que rellenar nada. Se tiene que dejar con ROW_FORMAT=COMPRESSED) $res = mysql_query("SHOW TABLES"); while ($row = mysql_fetch_array($res)) { foreach ($row as $key => $table) { mysql_query("ALTER TABLE " . $table . " ROW_FORMAT=COMPRESSED"); echo $key . " => " . $table . " CONVERTIDA<br />"; } } ?>
MUY IMPORTANTE: El scrip no funciona con php 7.0, ya que a partir de esa versión se eliminó la función mysql_connect como AQUÍ se indica.
Desde Hostinet recomendamos configurar la versión 5.6 de php para ejecutar este scrip y una vez finalice con éxito su ejecución volver a configurar php 7.0 o la versión que se tenga. En este artículo se indica cómo se puede cambiar la versión de php -> ¿Cómo cambiar la versión de PHP desde cPanel?
Para saberlo todo sobre las bases de datos… ¡Síguenos en nuestras redes sociales: Facebook y Twitter @hostinet!