<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux, computación y más... &#187; Base de datos</title>
	<atom:link href="http://antoniomtz.org/category/base-de-datos/feed/" rel="self" type="application/rss+xml" />
	<link>http://antoniomtz.org</link>
	<description></description>
	<lastBuildDate>Wed, 09 May 2012 00:14:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Respaldo de bases de datos en PostgreSQL</title>
		<link>http://antoniomtz.org/2009/06/respaldo-de-bases-de-datos-en-postgresql/</link>
		<comments>http://antoniomtz.org/2009/06/respaldo-de-bases-de-datos-en-postgresql/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 16:39:39 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=224</guid>
		<description><![CDATA[Para realizar un respaldo de alguna base de datos en PostgreSQL se utiliza el comando pg_dump. Les voy a compartir un pequeño pero útil script en bash para respaldar nuestra base de datos de forma automática y por fechas. Lo primero que debemos hacer es crear una carpeta por ejemplo llamada &#8220;respaldos&#8221; y dentro de [...]]]></description>
			<content:encoded><![CDATA[<p>Para realizar un respaldo de alguna <b>base de datos</b> en <b>PostgreSQL</b> se utiliza el comando <b>pg_dump</b>.</p>
<p>Les voy a compartir un pequeño pero útil script en <b>bash</b> para respaldar nuestra base de datos de forma automática y por fechas.</p>
<p>Lo primero que debemos hacer es crear una carpeta por ejemplo llamada <em><b>&#8220;respaldos&#8221;</b></em> y dentro de ahí, crearemos 7 carpetas más, con el nombre de los días de la semana, ejemplo: dom, lun, mar, mie, jue, vie, sab.</p>
<p>Ahora creamos el script:</p>
<pre>
<font color="blue">#!/bin/bash</font>
DB="shop"
DIA_ACTUAL=`date +%a`
FECHA_ACTUAL=`date +%Y-%m-%d`
HORA_ACTUAL=`date +%H:%M`
ARCH_RESP="$FECHA_ACTUAL--$HORA_ACTUAL"
DIR_RESP="/home/antonio/respaldo"
pg_dump -o -f $DIR_RESP/$DIA_ACTUAL/$DB-$ARCH_RESP.sql shop
</pre>
<p>Lo único que tienen que cambiar, es la variable <b>DB</b>, ahí va el de su base de datos y en la variable <b>DIR_RESP</b> va la ruta en tu carpeta <b>resplados</b>, con ésto cada vez que se ejecute dicho script, se creará un archivo llamado:</p>
<p><b>shop-2008-12-12&#8211;13:31.sql</b></p>
<p>Y lo pondrá en su respectiva carpeta deacuerdo al día, éste script lo puedes poner en la carpeta /etc/cron.daily para que se ejecute cada día.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/06/respaldo-de-bases-de-datos-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consulta segura en MySQL y PHP</title>
		<link>http://antoniomtz.org/2009/05/consulta-segura-en-mysql-y-php/</link>
		<comments>http://antoniomtz.org/2009/05/consulta-segura-en-mysql-y-php/#comments</comments>
		<pubDate>Sat, 23 May 2009 03:16:56 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=183</guid>
		<description><![CDATA[Al momento de desarrollar una aplicación con base de datos, se debe tomar en cuenta la seguridad del mismo, uno de los ataques más comunes es el sql injection que consta básicamente de introducir código sql en cajas de texto de nuestro sistema con el fin de introducirse ó sacar información. Un ejemplo de sql [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3166/3555151525_bca2fe2ae1_o.gif" width="300" height="225" alt="sql_injection" /></p>
<p>Al momento de desarrollar una aplicación con base de datos, se debe tomar en cuenta la seguridad del mismo, uno de los ataques más comunes es el <a href="http://es.wikipedia.org/wiki/SQL_injection" target="_blank">sql injection</a> que consta básicamente de introducir código sql en cajas de texto de nuestro sistema con el fin de introducirse ó sacar información.</p>
<p>Un ejemplo de <b>sql injection</b> sería el siguiente:</p>
<pre name="code" class="php">
&lt;?php
// Consultar la base de datos para verificar si hay una coincidencia de usuario
$consulta = "SELECT * FROM usuarios WHERE usuario='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($consulta);
//Supongamos que el usuario tecleó ' OR ''=' en el campo de password:
$_POST['username'] = 'admin';
$_POST['password'] = "' OR ''='";

// Esto quiere decir que la consulta enviada a MySQL seria:
echo $consulta;
?>
</pre>
<p>La variable $consulta contendría:</p>
<pre name="code" class="sql">
SELECT * FROM usuarios WHERE usuario='aidan' AND password='' OR ''=''
</pre>
<p>Esto permitiría a cualquier usuario ingresar al sistema sin password.</p>
<p>Para realizar una consulta segura, utilizaremos 2 funciones <a href="http://www.php-es.com/function.mysql-real-escape-string.html" target="_blank">mysql_real_escape_string</a> y <a href="http://www.php-es.com/function.sprintf.html" target="_blank">sprintf</a>, se pudiera resolver también modificando la configuración del php para no permitir caracteres especiales, pero ésto sería una desventaja, ya que no permitiría la portabilidad del código.</p>
<pre name="code" class="php">
&lt;?php
// Conexion
$enlace = mysql_connect('mysql_host', 'mysql_usuario', 'mysql_contraseña')
    OR die(mysql_error());
//Consulta segura
$query = sprintf("SELECT * FROM libros WHERE autor='%s'", mysql_real_escape_string($autor_nombre));

mysql_query($query);
?>
</pre>
<p>Ojo, si no hay una conexión con el servidor, la función mysql_rea_space_string marcará un error.</p>
<p>En caso de una consulta de logeo:</p>
<pre name="code" class="php">
&lt;?php
// Función para eliminar "/" y añadir comillas
function comillas_inteligentes($valor)
{
// Retirar las barras
    if (get_magic_quotes_gpc()) {
        $valor = stripslashes($valor);
    }

 // Colocar comillas si no es entero
    if (!is_numeric($valor)) {
        $valor = "'" . mysql_real_escape_string($valor) . "'";
    }
    return $valor;
}

// Conexion
$enlace = mysql_connect('mysql_host', 'mysql_usuario', 'mysql_contraseña')
    OR die(mysql_error());

//consulta segura
$consulta = sprintf("SELECT * FROM usuarios WHERE usuario=%s AND password=%s",
            comillas_inteligentes($_POST['username']),
            comillas_inteligentes($_POST['password']));

mysql_query($consulta);
?>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/05/consulta-segura-en-mysql-y-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Conexión Ruby con PostgreSQL</title>
		<link>http://antoniomtz.org/2009/02/conexion-ruby-con-postgresql/</link>
		<comments>http://antoniomtz.org/2009/02/conexion-ruby-con-postgresql/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 16:10:05 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=137</guid>
		<description><![CDATA[Este el el código para realizar una conexión en ruby con el motor de base de datos PostgreSQL. #!/usr/bin/env ruby require 'postgres' conn = PGconn.connect("localhost", 5432, '', '', "test", "myid", "mypass") res = conn.exec('select tablename, tableowner from pg_tables') res.each do &#124;row&#124; row.each do &#124;column&#124; print column (20-column.length).times{print " "} end puts end]]></description>
			<content:encoded><![CDATA[<p>Este el el código para realizar una conexión en <a href="http://www.antoniomtz.org/?q=node/29">ruby</a> con el motor de base de datos <a href="http://www.antoniomtz.org/?q=postgresql">PostgreSQL</a>.</p>
<pre>
#!/usr/bin/env ruby
require 'postgres'
conn = PGconn.connect("localhost", 5432, '', '', "test", "myid", "mypass")
res  = conn.exec('select tablename, tableowner from pg_tables')
res.each do |row|
	row.each do |column|
		print column
		(20-column.length).times{print " "}
	end
	puts
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/02/conexion-ruby-con-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mono C# con PostgreSQL</title>
		<link>http://antoniomtz.org/2009/02/mono-c-con-postgresql/</link>
		<comments>http://antoniomtz.org/2009/02/mono-c-con-postgresql/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 16:51:52 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=133</guid>
		<description><![CDATA[Ahora les voy a mostrar un pequeño ejercicio para trabajar con mono y el motor de base de datos PostgreSQL, si aún no tienes instalado Postgre ni mono puedes visitar estos tutoriales: Instalación PostgreSQL, Comenzando con mono. Para comenzar nos descargaremos la dll necesaria para trabajar con PostgreSQL en .NET, Npgsql.dll. Ahora en monodevelop, creamos [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora les voy a mostrar un pequeño ejercicio para trabajar con mono y el motor de base de datos PostgreSQL, si aún no tienes instalado Postgre ni mono puedes visitar estos tutoriales:<br />
<a href="http://www.antoniomtz.org/?q=postgresql">Instalación PostgreSQL</a>, <a href="http://www.antoniomtz.org/?q=comenzando-mono">Comenzando con mono</a>.</p>
<p>Para comenzar nos descargaremos la dll necesaria para trabajar con PostgreSQL en .NET, <a href="http://www.antoniomtz.org/files/Npgsql.dll">Npgsql.dll</a>.</p>
<p>Ahora en monodevelop, creamos un proyecto nuevo en C# a modo consola, ahora del lado derecho donde dice Referencias, damos click derecho y seleccionamos <b>Editar preferencias</b>, una vez ahí, seleccionamos la dll y la añadimos al proyecto.</p>
<p><center><a href="http://farm4.static.flickr.com/3617/3297240967_3c4aa187e1_o.png" onClick="Lightbox.showBoxImage(this.href);return false;" title="postgre por tono_mtz, en Flickr"><img src="http://farm4.static.flickr.com/3617/3297240967_e8ec5de2ee.jpg" width="500" height="313" alt="postgre" /></a></center></p>
<p>Para continuar, necesitamos crear una base de datos en postgre, podemos empezar con una tabla pequeña, para el ejercicio, hice una base de datos llamada <b>ejercicio</b>, con una tabla llamada <b>usuarios</b> que solamente contiene 3 campos, id, nombre y apellido.</p>
<p>Ahora entraremos a la parte de la programación, antes que nada, necesitamos agregar la librería necesaria al proyecto:</p>
<pre name="code" class="c#">
using Npgsql;
</pre>
<p>Enseguida crearemos algunos métodos de conectar, ejecutar y desconectar, para reducir código:<br />
<b>Método conectar()</b></p>
<pre name="code" class="c#">
namespace conexion
{
	class Postgre
	{
		public NpgsqlConnection dbcon; //Variable pública del tipo NpgsqlConnection

		public void conectar() //Método conectar
		{
	   string con = "Server=127.0.0.1;"+
      "Port=5432;"+
      "User Id=tu_usuario;"+
      "Password=tu_password;"+
      "Database=ejercicio;";	//Cadena para la conexión, modificar según tu user y password.

			dbcon = new NpgsqlConnection(con);
			dbcon.Open();
                }
</pre>
<p><b>Método ejecutar(string query)</b></p>
<pre name="code" class="c#">
public void ejectuar(string query)
		{
			NpgsqlCommand command = dbcon.CreateCommand();
			command.CommandText = query;
			command.ExecuteReader();

		}
</pre>
<p><b>Método Main()</b></p>
<pre name="code" class="c#">
public static void Main(string[] args)
		{
			try{
			Postgre conexion;
			conexion = new Postgre();
			conexion.conectar();
			Console.WriteLine("Conexión exitosa");
			string query = "INSERT INTO usuarios VALUES ('C01','Juan','Perez');";
			conexion.ejectuar(query);
			Console.WriteLine("Se ingreso el dato satisfactoriamente");
			Console.WriteLine("Visita http://www.antoniomtz.org");
		       }
		catch(NpgsqlException error)
			{
			string mensaje = error.Message;
			Console.WriteLine(mensaje);
			}
	}
</pre>
<p>Aquí les dejo el código completo : <a href="http://www.antoniomtz.org/files/conexion.txt">Conexión</a>.</p>
<p>Espero y les haya servidor, saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/02/mono-c-con-postgresql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mono + MySql , Altas y bajas</title>
		<link>http://antoniomtz.org/2008/05/mono-mysql-altas-y-bajas/</link>
		<comments>http://antoniomtz.org/2008/05/mono-mysql-altas-y-bajas/#comments</comments>
		<pubDate>Wed, 07 May 2008 01:28:05 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=56</guid>
		<description><![CDATA[Con motivo de seguir aprendiendo a utilizar herramientas libres, he realizado un pequeño proyecto de altas y bajas utilizando el IDE Monodevelop con el motor de base de datos MySql. Vamos a comenzar por explicar como conectar MySql con Mono. Para ello necesitaremos descargarnos la siguiente dll. Download MySql.dll. Instalamos MySql.Dada.dll tecleando en consola: # [...]]]></description>
			<content:encoded><![CDATA[<p>Con motivo de seguir aprendiendo a utilizar herramientas libres, he realizado un pequeño proyecto de altas y bajas utilizando el IDE Monodevelop con el motor de base de datos MySql.</p>
<p>Vamos a comenzar por explicar como conectar MySql con Mono. Para ello necesitaremos descargarnos la siguiente dll. <a href="http://www.antoniomtz.org/files/MySql.Data.dll">Download MySql.dll</a>.</p>
<p><b>Instalamos MySql.Dada.dll tecleando en consola:</b></p>
<pre>
# gacutil -i MySql.Data.dll
</pre>
<p>Creamos un nuevo proyecto y del lado izquierdo damos click derecho donde dice <b>Referencias</b> y le damos en <em>Editar preferencias&#8230;</em> .<br />
<center><br />
<img src="http://farm3.static.flickr.com/2107/2469412309_6ec38cbca4.jpg" width="500" height="313" alt="mysql-1" /></center></p>
<p>En la pestaña de <em>paquetes</em>, palomeamos donde dice <b>System.Data</b><br />
<center><br />
<img src="http://farm3.static.flickr.com/2170/2469412313_0aa7dacb68.jpg" width="500" height="313" alt="mysql-2" /></a></center></p>
<p>Pasamos a la pestaña de <em>Ensamblado .NET</em> y buscamos el archivo MySql.Data.dll , lo seleccionamos y presionamos el botón <em>Añadir</em>.</p>
<p><center><img src="http://farm4.static.flickr.com/3120/2469412317_3e0c039d82.jpg" width="500" height="313" alt="mysql-3" /></center></p>
<p>Ahora solamente faltaría añadir unas librerias ya en nuestro proyecto:<br />
<font color=brown>Using</font> System.Data;<br />
<font color=brown>Using</font> MySql.Data.MySqlClient;<br />
<center><br />
<img src="http://farm3.static.flickr.com/2353/2469412319_ea8a133b7c.jpg" width="500" height="313" alt="mysql=4" /></center></p>
<p>Con ello ya podemos empezar a programar y conectar a MySql. Como primera práctica que realicé, hice un pequeño proyecto de Altas y Bajas.</p>
<p><a href="http://farm3.static.flickr.com/2160/2470237816_0635e4aed2_m.jpg" title="menu por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2160/2470237816_0635e4aed2_m.jpg" width="240" height="173" alt="menu" /></a> <a href="http://farm3.static.flickr.com/2069/2470237810_59a10b4831_m.jpg" title="insertar por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2069/2470237810_59a10b4831_m.jpg" width="240" height="173" alt="insertar" /></a> <a href="http://farm3.static.flickr.com/2206/2470237814_2f18946816_m.jpg" title="lista por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2206/2470237814_2f18946816_m.jpg" width="240" height="192" alt="lista" /></a> <a href="http://farm3.static.flickr.com/2041/2470237806_b3592aa367_m.jpg" title="abc por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2041/2470237806_b3592aa367_m.jpg" width="240" height="150" alt="abc" /></a></p>
<p>El programa es algo sencillo y esta algo verde, pero como primer programa creo que es muy útil ya que viene lo esencial para comenzar a realizar un proyecto grande.</p>
<p>Para correr bien el programa, hay que crear una nueva base de datos llamada <b>prueba</b> y crearle una tabla con el siguiente script:</p>
<pre>
CREATE TABLE IF NOT EXISTS `usuarios` (
  `id` int(10) NOT NULL,
  `nombre` varchar(150) collate latin1_spanish_ci NOT NULL,
  `apellidos` varchar(200) collate latin1_spanish_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci COMMENT='Tabla de Usuarios';
</pre>
<p>Como ven, es una tabla sencilla de tan solo 3 campos, id qué es el número de control de usuario a ingresar, el campo de nombre y apellido. Hay que modificar la sección de conexión con su nombre de usuario y password de mysql. Creo que no debe de haber ningún problema para entender el programa, algunas partes les puse comentarios para ir explicandolas, aquí dejo algunas operaciones que creo son las más importantes:</p>
<p><b>Sección de conexión con la base de datos:</b></p>
<pre>
string conexion =
          "Server=localhost;" +
          "Database=prueba;" +
          "User ID=root;" +
          "Password=tupass;" +
          "Pooling=false";
       IDbConnection dbcon;
       dbcon = new MySqlConnection(conexion);
       dbcon.Open();
</pre>
<p><b>Sección de insertar usuario, donde control, nombre y apellido son tomados de cajas de texto:</b></p>
<pre>
IDbCommand dbcmd = dbcon.CreateCommand();
string sql= "INSERT INTO `prueba`.`usuarios` (`id` ,`nombre` ,`apellidos`) VALUES ( '"+ control +"' ,'"+ nombre +"','"+ apellido +"');";
           dbcmd.CommandText= sql; //se manda el query
	   dbcmd.ExecuteReader();  // se ejecuta el query
	   dbcon.Close();          // se cierra la conexión
</pre>
<p><b>Eliminar usuario:</b></p>
<pre>
IDbCommand dbcmd = dbcon.CreateCommand();
string sql = "DELETE FROM `usuarios` WHERE `usuarios`.`id` = '"+ control +"';";
		dbcmd.CommandText= sql;
		dbcmd.ExecuteReader();
		dbcon.Close();
</pre>
<p>Aquí les dejo el proyecto para la descarga, espero y les sea de utilidad, queda libre de modificaciones y mejoras.</p>
<p><a href="http://antoniomtz.org/files/mono_mysql.zip"><img src="http://farm3.static.flickr.com/2078/1867468998_577c0ea4ca_o.png"><br />
Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2008/05/mono-mysql-altas-y-bajas/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Altas, Bajas, Cambios (ABC) PHP + PostGreSQL</title>
		<link>http://antoniomtz.org/2008/04/altas-bajas-cambios-abc-php-postgresql/</link>
		<comments>http://antoniomtz.org/2008/04/altas-bajas-cambios-abc-php-postgresql/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 21:09:24 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=47</guid>
		<description><![CDATA[He modificado el programa de ABC con MySQL a ABC con PostGreSQL, la verdad que no cambia mucho la sintaxis para PHP, es basicamente lo mismo, la sintaxis SQL cambia un poco, pero gracias a PhpPgAdmin no tuve problemas. Si apenas estan comenzando a utilizar postgre, pueden seguir mi guía para instalación y configuración. Les [...]]]></description>
			<content:encoded><![CDATA[<p>He modificado el programa de <a href="http://www.antoniomtz.org/?q=ABC-php-mysql">ABC con MySQL</a> a ABC con PostGreSQL, la verdad que no cambia mucho la sintaxis para PHP, es basicamente lo mismo, la sintaxis SQL cambia un poco, pero gracias a PhpPgAdmin no tuve problemas. Si apenas estan comenzando a utilizar postgre, pueden seguir <a href="http://www.antoniomtz.org/?q=postgresql">mi guía</a> para instalación y configuración. Les dejo el código por si quieren empezar a programar con PHP y PostGreSQL tengan algo de referencia. Claro, lo libero bajo la Licencia de Pública General GNU.</p>
<p><center><a href="http://www.antoniomtz.org/files/php_postgresql.tar.gz" title="download"><img src="http://farm3.static.flickr.com/2078/1867468998_577c0ea4ca_o.png" width="48" height="48" alt="download" /><br />
Download</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2008/04/altas-bajas-cambios-abc-php-postgresql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Altas, bajas, cambios y busqueda con PHP + MySQL</title>
		<link>http://antoniomtz.org/2008/03/altas-bajas-cambios-y-busqueda-con-php-mysql/</link>
		<comments>http://antoniomtz.org/2008/03/altas-bajas-cambios-y-busqueda-con-php-mysql/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 21:30:55 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=43</guid>
		<description><![CDATA[Hace tiempo había realizado un pequeño programa de ABC y busqueda con LAMP (Linux, Apache, MySQL, PHP), y tenía pensado subirlo y liberarlo libremente, pues aquí esta el código junto con la base de datos. Es un programa sencillo, pero muy práctico para quienes se quieran iniciar en PHP y MySQL, quiero modificar este programa [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo había realizado un pequeño programa de ABC y busqueda con LAMP (Linux, Apache, MySQL, PHP), y tenía pensado subirlo y liberarlo libremente, pues aquí esta el código junto con la base de datos. Es un programa sencillo, pero muy práctico para quienes se quieran iniciar en PHP y MySQL, quiero modificar este programa para que trabaje con PostGreSQL, pero eso lo haré más delante, ando un poco ocupado por la escuela. Espero y les sea de utilidad.</p>
<p><a href="http://farm4.static.flickr.com/3093/2374676849_28c81c19a4_o.png" title="registro por antoniomtz86, en Flickr"><img src="http://farm4.static.flickr.com/3093/2374676849_c59fb8719f_m.jpg" width="240" height="150" alt="registro" /></a> <a href="http://farm3.static.flickr.com/2060/2375511844_48e29154ce_o.png" title="Pantallazo por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2060/2375511844_efcd316483_m.jpg" width="240" height="150" alt="Pantallazo" /></a> <a href="http://farm3.static.flickr.com/2164/2374675227_902e15ae9d_o.png" title="borrar por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2164/2374675227_0229189186_m.jpg" width="240" height="150" alt="borrar" /></a></p>
<p>Uso:</p>
<ul>
<li>Crear una base de datos vacia llamada &#8220;proyecto&#8221;</li>
<li>Exportar el archivo &#8220;base_de_datos.sql&#8221;</li>
<li>Modificar el archivo conexion.php</li>
</ul>
<p><a href="http://www.antoniomtz.org/files/php_mysql.zip" title="download"><img src="http://farm3.static.flickr.com/2078/1867468998_577c0ea4ca_o.png" width="48" height="48" alt="download" /><br />
Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2008/03/altas-bajas-cambios-y-busqueda-con-php-mysql/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Instalación de  PostgreSQL en Debian</title>
		<link>http://antoniomtz.org/2008/03/instalacion-de-postgresql-en-debian/</link>
		<comments>http://antoniomtz.org/2008/03/instalacion-de-postgresql-en-debian/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 23:03:04 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Base de datos]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://localhost/wordpress2/?p=40</guid>
		<description><![CDATA[PostGreSQL es un sistema de gestión de bases de datos objeto-relacional (ORDBMS) basado en el proyecto POSTGRES, de la universidad de Berkeley. PostGreSQL junto con MySQL son 2 de los sistemas de gestión de bases de datos de código abierto, siendo este último, el más utilizado entre las páginas web que utilizan bases de datos. [...]]]></description>
			<content:encoded><![CDATA[<p style="float:right"><img src="http://farm3.static.flickr.com/2001/2364392067_31ace345de_o.png" width="268" height="208" alt="postgresql" /></p>
<p>PostGreSQL es un sistema de gestión de bases de datos objeto-relacional (ORDBMS) basado en el proyecto POSTGRES, de la universidad de Berkeley. PostGreSQL junto con MySQL son 2 de los sistemas de gestión de bases de datos de código abierto, siendo este último, el más utilizado entre las páginas web que utilizan bases de datos.</p>
<p>Ya he tenido la oportunidad de trabajar con MySQL y la verdad ha sido muy flexible y fácil de utilizar. Una de las características de MySQL es la rapidez con la que trabaja a la hora de las consultas, sin embargo, me dio por conocer ahora PostgreSQL, ya qué he leído varios comentarios muy buenos de el. Entre algunas características que tiene PostGreSQL son las siguientes:</p>
<ul>
<li>Implementación del estándar SQL92/SQL99.</li>
<li>Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP &#8230;), cadenas de bits, etc. También permite la creación de tipos propios.</li>
<li>Incorpora funciones de diversa índole: manejo de fechas, geométricas, orientadas a operaciones con redes, etc.</li>
<li>Permite la gestión de diferentes usuarios, como también los permisos asignados a cada uno de ellos.</li>
<li>Al ser un sistema más robusto, trabaja muy bien a grandes cantidades de consultas simultaneamente</li>
</ul>
<p>Algunas desventajas:</p>
<ul>
<li>Como ya lo comenté anteriormente, es un sistema robusto, por lo qué consume gran cantidad de memoria.</li>
</ul>
<p>Apesar de que sea un sistema más lento que MySQL , es un sistema mucho más viable para uso de grandes cantidades de base de datos a las qué se puede acceder simultaneamente por múltiples usuarios, cosa que MySQL no lo logra.</p>
<h1>Instalación y configuración en Debian</h1>
<p>Para la instalación es fácil en Debian, ya que se encuentra entre los repositorios (<a href="http://www.antoniomtz.org/?q=repositorios-debian-lenny">Repositorios Debian</a>), para ello instalamos la última versión de PostGreSQL:</p>
<pre>
# aptitude install postgresql-8.3 postgresql-contrib-8.3 postgresql-client-8.3
</pre>
</p>
<p>Una vez instalado, vamos a crear un usuario con los permisos para crear bases de datos y dar de alta más usuarios.</p>
<pre>
$ su
Contraseña:
#su postgres
$createuser -a -d -P usuario
exit
exit

</pre>
<p>Explicación: <b>-a</b> Permite dar de alta usuarios, <b>-d</b> Permite crear bases de datos, <b>-P</b> le asignamos contraseña al usuario.</p>
<p>Podemos eliminar los usuarios creados entrando como root a PostGreSQL:</p>
<pre>
$ su
Contraseña:
#su postgres
$ dropuser usuario
exit
exit
</pre>
<p>Una vez creado el usuario con todos los privilegios, podemos empezar a crear bases de datos, listar las bd existentes, dar de alta más usuarios, etc&#8230;</p>
<p>Vamos a crear una bd con el sig. comando:</p>
<pre>
$ createdb nueva_bd
</pre>
<p>Y listamos las bd existentes verificando que se haya creado correctamente:</p>
<pre>
$ psql -l
</pre>
<p>Podemos eliminar las bases de datos creadas con:</p>
<pre>
$ dropdb nueva_bd
</pre>
<p>Una herramienta muy buena para trabajar con PostGreSQL , es <a href="http://es.wikipedia.org/wiki/PhpPgAdmin">PhpPgAdmin</a> un sistema muy parecido a phpmyadmin de MySQL. La instalación es sencilla:</p>
<pre>
# aptitude install phppgadmin php5-pgsql
</pre>
<p>En mi caso, tuve que modificar algunas cosas de apache para que funcione, explorando por las carpetas de apache me encuentro con lo siguiente:</p>
<pre>
# cd /etc/apache2/conf.d/
charset          phpmyadmin.conf
</pre>
<p>Podemos observar que solamente viene el archivo de configuración de phpmyadmin , el cual si se puede correr desde <b>localhost/phpmyadmin</b>, cosa que con PhpPgAdmin no se pudo. Luego navegando por los archivos de phppgadmin me encontre con lo siguiente:</p>
<pre>
# cd /etc/phppgadmin/
apache.conf     config.inc.php
</pre>
<p>Ese archivo llamado <b>apache.conf</b> es el que contiene todo el código necesario para que corra con apache, para ello agregé ese archivo <b>apache.conf</b> a la carpeta <b>/etc/apache2/conf.d/</b> renombrandolo por <b>phppgadmin.conf</b>.</p>
<pre>
# cp /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin.conf
</pre>
<p>Una vez con esto reiniciamos apache:</p>
<pre>
# /etc/init.d/apache2 force-reload
</pre>
<p>Y corremos phppgadmin desde el navegador <b>localhost/phppgadmin</b>.</p>
<p>Una de las primeras pruebas qué realicé fué probar Drupal con PostGreSQL y para ello creamos una base de datos <b>vacia</b>:</p>
<pre>
$ createdb drupal
</pre>
<p>Y modificamos el archivo <b>drupal/sites/default/settings.php</b> en el apartado que viene comentado:</p>
<pre>
$db_url = 'pgsql://usuario:password@localhost/drupal';
</pre>
<p>Y comentamos el apartado de MySQL:</p>
<pre>
//$db_url = 'mysql://username:password@localhost/databasename';
</pre>
<p>Y ahora bastará con correr desde el navegador el archivo: <b>http://localhost/drupal/install.php</b></p>
<p><center><a href="http://www.flickr.com/photos/9235553@N08/2365225142/" title="drupal-psql por antoniomtz86, en Flickr"><img src="http://farm3.static.flickr.com/2264/2365225142_570f725635.jpg" width="500" height="313" alt="drupal-psql" /></a></center></p>
<p>Gracias a <a href="http://movimientolibre.com">guivaloz</a> por su documentación en su página acerca de PostGreSQL, en la página de <a href="http://www.postgresql.org/docs/8.3/static/index.html">PostGreSQL</a> existe una gran documentación sobre este gran sistema. Los invito a qué prueben estas alternativas libres, ya sea PostGreSQL ó MySQL, ya que son unas alternativas de gran cálidad y estan muy por encima de sistemas propietarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2008/03/instalacion-de-postgresql-en-debian/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

