¿Cómo hacer una copia de seguridad (backup) de WordPress?

Las copias de seguridad o backup  de todo tipo de sistemas e instalaciones son el medio de mantenimiento preventivo más popular en el mundo de la informática. De forma puntual o rutinaria, creamos una réplica que nos permitirá hacer funcionar un sistema en caso de fallo, recuperando los datos del estado anterior. WordPress no puede ser menos y aunque existen plugins y otros métodos para hacerlo voy a mostraros la mecánica básica.

WordPress copias de seguridad - backup

Cualquier instalación de WordPress tiene dos partes diferenciadas:

  • La común: el núcleo de WordPress
  • La propia de cada blog: la que hace que tu instalación de WordPress sea diferente a todas las demás

La parte propia consiste en:

  • El directorio /wp-content, en donde se encuentran los temas, las subidas y los plugins con los ficheros que generan
  • El fichero wp-config.php
  • Los datos dentro de MySQL

Leer más » 5 Comentarios

Diferencia entre DELETE, TRUNCATE y DROP en SQL

Cuando manejamos una base de datos SQL, además de manejar creaciones de tablas (CREATE TABLE), inserciones (INSERT), consultas (SELECT) y actualizaciones (UPDATE); dentro de las operaciones básicas también tenemos las que implican borrado. Borrado de diferentes tipos: de filas que cumplan una serie de condiciones, de todos los datos de una tabla o de la tabla con su estructura. Veamos cada una de ellas, con su sintaxis y un ejemplo.

Manejamos para el ejemplo una tabla entradas, que trata sobre la entradas de un blog y que almacena básicamente la siguiente información: identificador, título, cuerpo y tiempo de salida.

DELETE

Borra una serie de filas de la tabla. Podemos usar una claúsula WHERE para limitar las filas a borrar, a las que cumplan una condición. La sintaxis sería:

DELETE FROM nombre_tabla WHERE condicion

Leer más » 3 Comentarios

Formatear y redondear un número en MySQL

Cuando trabajamos con cantidades con decimales en MySQL, es posible que queramos formatear nuestro número. Este problema es muy usual si usamos números en coma flotante: FLOAT y DOUBLE. Yo siempre suelo recomendar excepto para aplicaciones de muy alto rendimiento usar el tipo DECIMAL, de forma que guardemos el valor exacto y no aproximado (otro día hablaremos de la representación de números decimales en forma de coma flotante y las ventajas e inconvenientes que tiene).

Imaginemos que guardamos las cantidades de un determinado importe en DOUBLE, al hacer una consulta nos sale una cantidad de números decimales demasiado grande. La idea es redondear el número de forma que sólo aparezcan sólo dos decimales:

SELECT ROUND(importe, 2)
FROM compras;

Leer más » 3 Comentarios

Unir cadenas en MySQL

Es muy frecuente que a la hora de almacenar los nombres y apellidos, por ejemplo, de unas personas en la base de datos los pongamos en dos columnas separadas. A la hora de hacer consultas, necesitaremos hacer unirlas, es decir concatenarlas.

En MySQL esta operación puede ser directa, imaginemos una tabla personas con la siguiente estructura:

  • DNI: varchar que es clave primaria
  • Nombre: varchar
  • Apellidos: varchar

Queremos hacer una consulta en la que aparezca el dni seguido de los apellidos y el nombre unidos y separados por una coma. Sólo tendremos que hacer lo siguiente, usar la función CONCAT():

Leer más » 4 Comentarios

Diferencias entre un servicio de alojamiento con Linux y otro con Windows

En muchas ocasiones cuando contratamos un plan de hosting, no nos fijamos en uno de los detalles más importantes, el sistema operativo sobre el que va a estar ejecutando el servidor que nos provea de alojamiento web y otras muchas funciones. Aparte de otras alternativas que existen derivadas de sistemas como la familia BSD, las empresas que proporcionan hosting suelen decantarse mayoritariamente por dos sistemas operativos, GNU/Linux y Windows. Sin tener estadísticas fiables, no puedo decir a ciencia cierta que la mayoría usan GNU/Linux, aunque dando una paseo por la red, podemos hacernos una idea de que sí puede ser cierta dicha afirmación. También podremos ver bastantes empresas de hosting que ofrecen planes basados en servidores de Microsoft, por lo que en este artículo veremos en qué influye como clientes de un servicio de alojamiento web, que elijamos uno u otro sistema.

Introducción

Como en otros tantos aspectos de las nuevas tecnologías, en el mercado del hosting, tenemos varias posibilidades en cuanto a sistema operativo se refiere. Las dos mayoritarias a día de hoy, GNU/Linux y Microsoft Windows, se reparten una gran cuota de mercado lo que no quiere decir que no existan otras alternativas, como por ejemplo servidores basados en NetBSD o FreeBSD. En este artículo veremos desde el punto de vista de cliente de una empresa de hosting, qué puede hacer que nos decantemos entre una u otra opción.

Leer más » 6 Comentarios

Curso ADO.NET con MySQL – Conclusiones

Se acaba el año y con él quiero dar por finalizado el curso de ADO.NET sobre Mono con MySQL que desde hace unos meses empecé en este portal. Llegamos a las conclusiones. En breve, anunciaré un nuevo curso de algo que domine y que no me cueste mucho tiempo desarrollar, cuando se me acaben las ideas, ya os pediré directamente recomendaciones.

Conclusiones

Aunque existen otras opciones para realizar labores similares a ésta, como Hibernate o directamente JDBC, siempre es bueno como he dicho desde un comienzo, conocer más posibilidades sobre todo en el caso de este tipo de tecnologías tan difundidas a día de hoy. No digo que Mono esté tan difundido como algunos querríamos, pero sí es verdad que por suerte o por desgracia, .NET Framework está presente en cada vez más ordenadores, y la compatibilidad de Mono con la plataforma de Microsoft le augura un futuro muy prometedor.

Leer más » 3 Comentarios

Curso ADO.NET con Mono y MySQL – Rellenando un DataSet

Posiblemente, leer hacia delante sea una opción muy interesante en algunas ocasiones… pero en otras muchas no lo será y tendremos que recurrir a los versátiles DataSet. Haremos un uso básico de los mismos en este ejemplo, porque como os he dicho ya sus posibilidades son realmente amplias. Insertaremos un nuevo concepto, el de la clase MySqlAdapter que será quien se encargue de rellenar el DataSet a través del comando que ejecute el SELECT.

Previamente deberemos incluir la referencia a nuestro proyecto para el ensamblado System.Data que lo encontraréis dentro del menú de referencias en la pestaña “Paquetes”. En el comienzo del fichero también deberéis rellenar su respectivo using System.Data.

Una vez hecho esto, para rellenar el DataSet sólo tendremos que hacer:

Leer más » 1 Comentario

Curso ADO.NET con Mono y MySQL – Primeras consultas

La clase que utilizaremos ahora será MySqlCommand y nuestra primera consulta, será una inserción sobre la base de datos. Insertaremos un registro más. La secuencia de pasos a efectuar es la siguiente:

  1. Creamos la consulta y la asignamos a una cadena
  2. Creamos el comando con la consulta que acabamos de crear
  3. Asignamos la conexión pertinente al comando
  4. Lo ejecutamos

Ampliando nuestro ejemplo, quedaría así:

public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open(); 

	try
	{
		string consulta = "INSERT INTO ejemplo (numero , tema)
 VALUES ('27', 'Sonido')";
		MySqlCommand comando = new MySqlCommand(consulta);
		comando.Connection = conexion;
		int resultado = comando.ExecuteNonQuery();
		Console.WriteLine("Filas afectadas : "
 + resultado.ToString());
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}

Como se puede apreciar, hemos cuidado que se finalice la conexión aunque existan errores, con finally y hemos controlado los posibles errores que aparezcan. En nuestro caso debería decir: “Filas afectadas: 1”, puesto que la inserción sólo realiza una.

Leer más » 2 Comentarios

Curso ADO.NET con Mono y MySQL – DataSet, DataTable, DataColumn y DataRow

La potencia de ADO.NET es proporcional al número de conceptos que lo rodean, así que en esta entrada como hemos dicho haremos una visión introductoria, pero espero que suficiente para comenzar a profundizar más en el tema.

Uno de los aspectos esenciales de ADO, como no podía ser de otra manera, es la interacción directa con los datos provenientes de las bases de datos. Para comenzar a operar con ello os presento estas cuatro clases: DataSet, DataTable, DataColumn y DataRow; conjunto de datos, tabla de datos, columna de datos y fila de datos, respectivamente.

Un conjunto de datos, es un objeto que almacena datos, en forma de tablas por ejemplo, y que pueden provenir de distintos orígenes. Una tabla de datos, es el objeto que almacena los datos de, una consulta, por ejemplo, en forma de tabla en la memoria y a la que podremos acceder, básicamente, a través de sus filas y columnas. Todas estas clases suelen tener una representación física en la base de datos, pero no tiene que ser así siempre, y podemos trabajar de manera asíncrona con la base de datos o directamente con datos provenientes de otras fuentes como por ejemplo ficheros XML.

Leer más » 1 Comentario

Configurar AdSense (anuncios) y Analytics (estadísticas) en WPTouch

Una vez hemos instalado y configurado correctamente WPtouch, tal como vimos ayer, vamos a proceder configuraciones adicionales para que el portal se quede completamente funcional, también en su versión móvil.

Configuración WPtouch con Google AdSense y Google Analytics

Integrar estadísticas con Google Analytics

Las estadísticas son algo básico para un blogger, así que si usáis Google Analytics os interesará esta parte. Dentro de la configuración hay una parte que lo especifica: “AdSense, estadísticas y código a medida”, sin embargo, no es trivial la configuración.

Dentro de esa parte tenemos un textarea para rellenar con título: “Estadísticas y código a medida”. Deberemos introducir el siguiente código JavaScript, modificando sólo nuestro identificador de cliente de Google Analytics (es una cadena de la siguiente forma: “UA-XXXXXX-X). Veamos:

Leer más » 9 Comentarios