<?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>luauf.com &#187; MySQL</title>
	<atom:link href="http://luauf.com/category/bases-de-datos/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://luauf.com</link>
	<description>Sistemas Operativos, Bases de Datos, Programación y Redes</description>
	<lastBuildDate>Mon, 14 May 2012 01:15:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Exportar una base de datos MDB a SQL (mysql, oracle, sybase, etc.)</title>
		<link>http://luauf.com/2011/09/12/exportar-una-base-de-datos-mdb-a-sql-mysql-oracle-sybase-etc/</link>
		<comments>http://luauf.com/2011/09/12/exportar-una-base-de-datos-mdb-a-sql-mysql-oracle-sybase-etc/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 02:00:38 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[exportar]]></category>
		<category><![CDATA[mdb]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Postgres]]></category>
		<category><![CDATA[sybase]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1193</guid>
		<description><![CDATA[Recuerdo instantes de mi pasado donde he tenido la necesidad de llevar Bases de Datos MDB, Microsoft Access, a bases de datos MySQL. Recuerdo por entonces MySQL Migration Toolkit, una herramienta para realizar...]]></description>
			<content:encoded><![CDATA[<p>Recuerdo instantes de mi pasado donde he tenido la necesidad de llevar Bases de Datos MDB, Microsoft Access, a bases de datos MySQL.</p>
<p>Recuerdo por entonces MySQL Migration Toolkit, una herramienta para realizar esta carga requerida. No obstante no era de mi agrado, y lo que buscaba por entonces era simplemente obtener un script SQL con el código DDL y DML necesario para el CREATE de los objetos de la base de datos y los INSERTs de los datos. A esa utilidad, hoy Linuxeando, le encontré el nombre: <strong><a href="http://mdbtools.sourceforge.net/">mdbtools</a></strong>.</p>
<p>MDBtools es un suite de herramientas (mdb-array mdb-header mdb-parsecsv mdb-schema mdb-tables mdb-export mdb-hexdump mdb-prop mdb-sql mdb-ver) que permiten, entre sus funciones, obtener  esquema de una base de datos y exportar en SQL los datos de la misma.</p>
<p><span id="more-1193"></span>Veamos un ejemplo básico y sencillo que consiste en:</p>
<ul>
<li>Exportar el diseño de la vieja y querida Neptuno.mdb (conocida base de datos distribuida como ejemplo con Microsoft Access) en formato de sentencias de definición de datos SQL.</li>
<li>Obtener el nombre de las tablas de la misma base de datos</li>
<li>Exportar los datos de cada tabla bajo la forma de INSERTs SQL.</li>
</ul>
<div class="syntax_hilite">
<div id="code-2">
<div class="code">$ sudo aptitude install mdbtools</p>
<p>$ mdb-schema Neptuno.<span style="">mdb</span> mysql&amp;gt; Neptuno_schema.<span style="">sql</span> #donde mysql se puede reemplazar por otro dialecto: oracle, sybase o postgres.</p>
<p>$ for tabla in `cat Neptuno_tables.<span style="">txt</span>`; do mdb-export -R \; -I Neptuno.<span style="">mdb</span> $<span style="color:#006600; font-weight:bold;">&#123;</span>tabla<span style="color:#006600; font-weight:bold;">&#125;</span>; done&amp;gt; Neptuno_data.<span style="">sql</span></p>
<p>$ rm Neptuno_tables.<span style="">txt</span></div>
</div>
</div>
<p></p>
<p>Fácil, sencillo y util&#8230; lástima que en mi caso llega tarde, no obstante en conocimiento perdura y nadie puede asegurarme que no me encuentre alguna vieja MDB en mi camino.</p>
<p>Vía: <a href="http://www.wikipeando.com/index.php/archives/481">Wikipeando</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2011/09/12/exportar-una-base-de-datos-mdb-a-sql-mysql-oracle-sybase-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Cómo conectarse a MySQL desde un programa en C?</title>
		<link>http://luauf.com/2011/07/09/%c2%bfcomo-conectarse-a-mysql-desde-un-programa-en-c/</link>
		<comments>http://luauf.com/2011/07/09/%c2%bfcomo-conectarse-a-mysql-desde-un-programa-en-c/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 18:01:54 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[librerias]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1192</guid>
		<description><![CDATA[La respuesta al título de esta publicación es muy sencilla, conectarse a MySQL desde C se realiza mediante una API provista por el mismo proveedor de base de datos. La API de C...]]></description>
			<content:encoded><![CDATA[<p>La respuesta al título de esta publicación es muy sencilla, conectarse a MySQL desde C se realiza mediante una API provista por el mismo proveedor de base de datos.</p>
<p>La API de C es ditribuida con MySQL, no es más que una librería (libmysqlclient) que interfacea entre el programa y la base de datos.</p>
<p>La documentación provista por MySQL es muy completa (<a href="http://dev.mysql.com/doc/refman/5.0/en/c.html">MySQL C API</a>), no obstante, fiel a nuestra costumbre iremos a un ejemplo sencillo y concreto.</p>
<p><span id="more-1192"></span>¿Qué necesitamos?</p>
<ul>
<li>Un servidor de base de datos MySQL, al cual conectarnos</li>
<li>Un programa cliente</li>
<li>La librería mysqlclient</li>
<li>mysql-devel, headers con la firma de la librería</li>
<li>gcc</li>
</ul>
<p>Con cualquier variante de UNIX más la instalación manual de la distribución binaria (tar.gz) tendremos todo lo que necesitamos. Caso contrario habrá que instalar los paquetes necesarios que incluya los requisitos mencionados, por ejemplo <strong>mysql-devel</strong>.</p>
<p>Primero, sin ir al detalle en concreto de cada línea (no cuesta nada interpretar el código, pues está bien comentado) veamos el siguiente fuente:</p>
<div class="syntax_hilite">
<div id="c-4">
<div class="c"><span style="color: #808080; font-style: italic;">/* mi_cliente */</span><br />
<span style="color: #339933;">#include</span><br />
<span style="color: #339933;">#include</span></p>
<p>main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
MYSQL *conn;<br />
MYSQL_RES *res;<br />
MYSQL_ROW row;</p>
<p><span style="color: #993333;">char</span> *server = <span style="color: #ff0000;">&#8220;localhost&#8221;</span>;<br />
<span style="color: #993333;">char</span> *user = <span style="color: #ff0000;">&#8220;root&#8221;</span>;<br />
<span style="color: #993333;">char</span> *password = <span style="color: #ff0000;">&#8220;PASSWORD&#8221;</span>; <span style="color: #808080; font-style: italic;">/* set me first */</span><br />
<span style="color: #993333;">char</span> *database = <span style="color: #ff0000;">&#8220;mysql&#8221;</span>;</p>
<p>conn = mysql_init<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>;</p>
<p><span style="color: #808080; font-style: italic;">/* Connect to database */</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!mysql_real_connect<span style="color: #66cc66;">&#40;</span>conn, server,<br />
user, password, database, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">NULL</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
fprintf<span style="color: #66cc66;">&#40;</span>stderr, <span style="color: #ff0000;">&#8220;%s<span style="color: #000099; font-weight: bold;">\n</span>&#8220;</span>, mysql_error<span style="color: #66cc66;">&#40;</span>conn<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
exit<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></p>
<p><span style="color: #808080; font-style: italic;">/* send SQL query */</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>mysql_query<span style="color: #66cc66;">&#40;</span>conn, <span style="color: #ff0000;">&#8220;show tables&#8221;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
fprintf<span style="color: #66cc66;">&#40;</span>stderr, <span style="color: #ff0000;">&#8220;%s<span style="color: #000099; font-weight: bold;">\n</span>&#8220;</span>, mysql_error<span style="color: #66cc66;">&#40;</span>conn<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
exit<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></p>
<p>res = mysql_use_result<span style="color: #66cc66;">&#40;</span>conn<span style="color: #66cc66;">&#41;</span>;</p>
<p><span style="color: #808080; font-style: italic;">/* output table name */</span><br />
<a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;MySQL Tables in mysql database:<span style="color: #000099; font-weight: bold;">\n</span>&#8220;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>row = mysql_fetch_row<span style="color: #66cc66;">&#40;</span>res<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> != <span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span><br />
<a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8220;%s <span style="color: #000099; font-weight: bold;">\n</span>&#8220;</span>, row<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</p>
<p><span style="color: #808080; font-style: italic;">/* close connection */</span><br />
mysql_free_result<span style="color: #66cc66;">&#40;</span>res<span style="color: #66cc66;">&#41;</span>;<br />
mysql_close<span style="color: #66cc66;">&#40;</span>conn<span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Ahora si veamos la parte más interesa saber ¿cómo compilar?</p>
<p>Entre los argumentos a pasarle al gcc tenemos los directorios con las librerías, las librerías propiamente dichas, los directorios de encabezados (.h), y otras opciones más del compilador. Esto no representa ningún problema, menos aún con <a href="http://dev.mysql.com/doc/refman/5.0/en/mysql-config.html. mysql_config">mysql_config</a>  es un pequeño utilitario de MySQL que provee información para el compilador.</p>
<p>De esta forma:</p>
<ul>
<li><strong>mysql_config &#8211;libs</strong>: devuelve los path de las librerías y las librerías propiamente dichas a linkear.</li>
<li><strong>mysql_config &#8211;cflags</strong>: devuelve, entre otros argumentos, los path de los headers.</li>
</ul>
<p>Finalmente, podemos compilar de esta manera tan sencilla:</p>
<pre>$ gcc -o mi_cliente $(mysql_config --cflags) mi_cliente.c $(mysql_config --libs)</pre>
<p>Y luego ejecutar:</p>
<pre>$ ./mi_cliente</pre>
<p>Realmente, muy sencillo ¿no?</p>
<p>Vía: <a href="http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html">nixCraft</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2011/07/09/%c2%bfcomo-conectarse-a-mysql-desde-un-programa-en-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle SQL Developer 2.1</title>
		<link>http://luauf.com/2009/10/07/oracle-sql-developer-2-1/</link>
		<comments>http://luauf.com/2009/10/07/oracle-sql-developer-2-1/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 02:20:10 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1102</guid>
		<description><![CDATA[Oracle SQL Developer es una herramienta gratuita para desarrolladores disponible para Windows, Mac y Linux que permite manipular bases de datos Oracle y de terceros, como DB2, Access o MySQL por medio de...]]></description>
			<content:encoded><![CDATA[<p>Oracle SQL Developer es una herramienta gratuita para desarrolladores disponible para Windows, Mac y Linux que permite manipular bases de datos <strong>Oracle</strong> y de terceros, como <strong>DB2</strong>, <strong>Access</strong> o <strong>MySQL</strong> por medio de un driver <strong>JDBC</strong>.</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2009/10/splash.png"><img class="alignnone size-medium wp-image-1103" title="splash" src="http://luauf.com/wp-content/uploads/2009/10/splash-300x183.png" alt="splash" width="300" height="183" /></a></p>
<p>La última versión disponible de este cliente es la 2.1 y puede descargarse gratuitamente, previo registro <a href="http://go2.wordpress.com/?id=725X1342&amp;site=ubuntulife.wordpress.com&amp;url=http%3A%2F%2Fwww.oracle.com%2Ftechnology%2Fsoftware%2Fproducts%2Fsql%2Findex21_EA1.html">aquí</a>. Para ver la lista de características de la aplicación puedes hacer clic <a href="http://go2.wordpress.com/?id=725X1342&amp;site=ubuntulife.wordpress.com&amp;url=http%3A%2F%2Fwww.oracle.com%2Ftechnology%2Fproducts%2Fdatabase%2Fsql_developer%2Ffiles%2Fnewfeaturelist21.htm">aquí</a>.</p>
<p><span id="more-1102"></span><br />
A pesar de que la herramienta tiene su fuerte en Oracle, se puede utilizar para otras bases de datos, como mencionamos y son varios los usuarios de MySQL que la utilizan por sobre las herramientas que ofrece MySQL.</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2009/10/OracleSQLDeveloper.png"><img class="alignnone size-medium wp-image-1104" title="OracleSQLDeveloper" src="http://luauf.com/wp-content/uploads/2009/10/OracleSQLDeveloper-300x168.png" alt="OracleSQLDeveloper" width="300" height="168" /></a></p>
<p>La descarga, instalación y ejecución es sencilla y el único requerimiento es el JDK de Java 1.6.11 o superior. A modo de ayuda los pasos a seguir son:</p>
<ul>
<li>Descargar <a href="http://www.oracle.com/technology/software/products/sql/index21_EA1.html">SQL Developer 2.1</a>, en mi caso fue la versión &#8220;<em>Oracle SQL Developer for other platforms (This zip does not include a JDK)</em>&#8221; y descomprimir</li>
<li>Verificar la versión del JDK instalado, primero verificando los paquetes de Java instalados (<strong>dpkg &#8211;get-selections | grep java</strong>), la información del paquete (<strong>dpkg -s sun-java6-jdk</strong>) que incluye su versión y finalmente el path donde se encuentra instalado (<strong>dpkg -L sun-java6-jdk</strong>)</li>
<li>Luego, desde una consola, ubicarse en el directorio ./sqldeveloper  y ejecutar el script sqldeveloper.sh (<strong>sh sqldeveloper.sh</strong>)</li>
<li>Iniciado el script y solicitado path del J2SE, ingresar el obtenido dos pasos atrás, en mi caso: <strong>/usr/lib/jvm/java-6-sun-1.6.0.16</strong></li>
</ul>
<div class="syntax_hilite">
<div id="code-6">
<div class="code">Type the full pathname of a J2SE installation <span style="color:#006600; font-weight:bold;">&#40;</span>or Ctrl-C to quit<span style="color:#006600; font-weight:bold;">&#41;</span>, the path will be stored in ~/.<span style="">sqldeveloper</span>/jdk<br />
/usr/lib/jvm/java-<span style="color:#800000;">6</span>-sun-<span style="color:#800000;">1</span>.<span style="color:#800000;">6</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">16</span></div>
</div>
</div>
<p></p>
<ul>
<li>Finalmente, si quieres conectarte a otra base de datos distinta de Oracle, desde Herramientas (Tools), Preferencias (Preferences) debes buscar la rama &#8220;Base de Datos \ Controladores JDBC de Terceros&#8221; del árbol y agregar el path del mismo (en el caso de MySQL no recomiendan el 5.1, sino el 5.0.4)</li>
</ul>
<p>Vía: <a href="http://ubuntulife.wordpress.com/2009/09/27/sql-developer-2-1-disponible/">Ubuntu Life</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/10/07/oracle-sql-developer-2-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>¿Puedo utilizar IIF en T-SQL?</title>
		<link>http://luauf.com/2009/08/11/%c2%bfpuedo-utilizar-iif-en-t-sql/</link>
		<comments>http://luauf.com/2009/08/11/%c2%bfpuedo-utilizar-iif-en-t-sql/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 02:30:47 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[condiciones]]></category>
		<category><![CDATA[Consultas]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[iif]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[t-sql]]></category>
		<category><![CDATA[transact sql]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1082</guid>
		<description><![CDATA[Esta publicación tiene origen a partir de una consulta realizada por un compañero. Es usual que esta pregunta se la hagan aquellos que vienen con conocimientos adquiridos en Access, aunque en este caso...]]></description>
			<content:encoded><![CDATA[<p>Esta publicación tiene origen a partir de una consulta realizada por un compañero. Es usual que esta pregunta se la hagan aquellos que vienen con conocimientos adquiridos en Access, aunque en este caso se trataba de reescribir para SQL Server una consulta originalmente escrita en MySQL (IF en vez de IIF).</p>
<p>Luego de buscar un poco llegué a unas FAQs que dieron solución a este problema.</p>
<p>Te guste o no, las consultas que utilicen IIF (o IF en MySQL) deberán ser reescritas utilizando la expresión CASE.</p>
<p><span id="more-1082"></span></p>
<p>Veamos un simple ejemplo:</p>
<p>SELECT id, nombre, IF(pais=&#8221;Argentina&#8221;,&#8221;Argentino&#8221;,&#8221;Extranjero&#8221;) nacionalidad FROM clientes;</p>
<p>Como mencionamos arriba, esta consulta deberá ser reescrita utilizando la expresión CASE, quedando así:</p>
<div class="syntax_hilite">
<div id="sql-9">
<div class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span><br />
&nbsp; &nbsp; id, nombre,<br />
&nbsp; &nbsp; CASE&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; WHEN pais=<span style="color: #ff0000;">&#8220;Argentina&#8221;</span>    THEN <span style="color: #ff0000;">&#8220;Argentino&#8221;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ELSE    &nbsp;                <span style="color: #ff0000;">&#8220;Extranjero&#8221;</span><br />
&nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">AS</span> nacionalidad<br />
<span style="color: #993333; font-weight: bold;">FROM</span> clientes;</div>
</div>
</div>
<p></p>
<p>Esta es una consulta Transact SQL válida, la cual puede ser interpretada y ejecutada por SQL Server.</p>
<p>Al principio puede resultar un poco molesta la expresión, pero piensa que con IIF o IF solo puedes evaluar una expresión lógica y cuando son varios los valores posibles ir anidando &#8220;IFes&#8221;, cuando con CASE no existe esa limitación, por ejemplo:</p>
<div class="syntax_hilite">
<div id="sql-10">
<div class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span><br />
&nbsp; &nbsp; id, nombre,<br />
&nbsp; &nbsp; CASE<br />
&nbsp; &nbsp; &nbsp; &nbsp; WHEN pais=<span style="color: #ff0000;">&#8220;Argentina&#8221;</span>    THEN <span style="color: #ff0000;">&#8220;Argentino&#8221;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; WHEN pais=<span style="color: #ff0000;">&#8220;España&#8221;</span>       THEN <span style="color: #ff0000;">&#8220;Español&#8221;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ELSE              &nbsp; &nbsp; &nbsp;  <span style="color: #ff0000;">&#8220;De algun rincón del mundo&#8221;</span><br />
&nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">AS</span> nacionalidad<br />
<span style="color: #993333; font-weight: bold;">FROM</span> clientes;</div>
</div>
</div>
<p></p>
<p>Un comentario más y por las dudas: MySQL también soporta el uso de la <a href="http://dev.mysql.com/doc/refman/5.0/en/case-statement.html">expresión CASE</a>.</p>
<p>Como siempre y una vez más después de varios días compartiendo experiencias personales y aceptando cualquier crítica o, mejor aún, aportes.</p>
<p>Vía: <a href="http://www.sql-server-performance.com/faq/iif_tsql_p1.aspx">SQLServer Performance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/08/11/%c2%bfpuedo-utilizar-iif-en-t-sql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desinstalar MySQL de Linux</title>
		<link>http://luauf.com/2009/06/18/desinstalar-mysql-de-linux/</link>
		<comments>http://luauf.com/2009/06/18/desinstalar-mysql-de-linux/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 09:00:53 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[desinstalar]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql 5.1]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[uninstall]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1050</guid>
		<description><![CDATA[Hace un tiempo habíamos instalado en Ubuntu la última versión estable de MySQL, MySQL 5.1. La instalación había sido manual (no utilizamos ningún tipo de gestor de paquetes, solo descargamos los binarios en...]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo habíamos<a href="http://luauf.com/2009/02/08/instalar-mysql-51-en-ubuntu/"> instalado en Ubuntu la última versión estable de MySQL, MySQL 5.1</a>. La instalación había sido manual (no utilizamos ningún tipo de gestor de paquetes, solo descargamos los binarios en un tar.gz) y seguimos los pasos de instalación para cualquier sistema operativo UNIX compatible.</p>
<p>Hoy haremos el camino inverso, es decir, desinstalaremos la base de datos y como suele ocurrir, desarmar es mucho más fácil que armar, y como verán aquí, la desinstalación no escapa de la regla.</p>
<p><span id="more-1050"></span></p>
<p>Paso número uno, detenemos el motor de base de datos:</p>
<p><codeline>(sudo) /etc/init.d/mysql stop</codeline></p>
<p>A continuación borramos el script del init.d:</p>
<p><codeline>(sudo) rm /etc/init.d/mysql</codeline></p>
<p>Y quitamos el servicio:</p>
<p><codeline>(sudo) chkconfig &#8211;del mysql</codeline></p>
<p>Si no posees chkconfig, puedes descargarl:</p>
<p><codeline>(sudo) apt-get install chkconfig</codeline></p>
<p>O bien puedes quitarlo desde la interfaz gráfica en Sistema  Administración  Servicios:</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2009/06/servicio_mysql.png"><img class="alignnone size-medium wp-image-1052" title="servicio_mysql" src="http://luauf.com/wp-content/uploads/2009/06/servicio_mysql-300x202.png" alt="servicio_mysql" width="300" height="202" /></a></p>
<p>A continuación, eliminamos a la fuerza el directorio de MySQL:</p>
<p><codeline>(sudo)rm -fr /usr/local/mysql</codeline></p>
<p>Puede que el anterior no haya sido otra cosa que un link al directorio mysql-version, por lo tanto en ese caso me aseguro de eliminar el directorio hacia el cual apuntaba:</p>
<p><codeline>(sudo) rm -r mysql-5.1.31-linux-i686-glibc23</codeline></p>
<p>Ya terminando quitamos el grupo mysql del archivo <strong>/etc/group</strong> y finalmente borramos el usuario:</p>
<p><codeline>(sudo) deluser mysql</codeline></p>
<p>Y eso fue todo, facil ¿no?</p>
<p>Queda pendiente la pregunta ahora&#8230; ¿por que desinstalamos MySQL?</p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/06/18/desinstalar-mysql-de-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Obtener una columna con el número de fila en MySQL</title>
		<link>http://luauf.com/2009/06/14/generar-una-columna-calculada-autonumerica-en-mysql/</link>
		<comments>http://luauf.com/2009/06/14/generar-una-columna-calculada-autonumerica-en-mysql/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 09:01:36 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[auto]]></category>
		<category><![CDATA[autoincremental]]></category>
		<category><![CDATA[AUTO_INCREMENT]]></category>
		<category><![CDATA[calculadas]]></category>
		<category><![CDATA[columnas]]></category>
		<category><![CDATA[incremento]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1046</guid>
		<description><![CDATA[Más de una vez tuve la necesidad de en una consulta enumerar las filas de la misma, por medio de una columna calculada auto incremental ¿se entiende cual era me requerimiento? Explicándolo de...]]></description>
			<content:encoded><![CDATA[<p>Más de una vez tuve la necesidad de en una consulta enumerar las filas de la misma, por medio de una columna calculada auto incremental ¿se entiende cual era me requerimiento?</p>
<p>Explicándolo de nuevo, mi necesidad era de contar con una nueva columna que sea un número auto incremental y que represente el número de fila. Según el artículo original esto se puede hacer en Oracle a través de la variable rownum (no doy fe de ello pues no conozco).</p>
<p>Bien, en esta publicación disponemos de la solución.</p>
<p><span id="more-1046"></span>Veamos un ejemplo: tengo la siguiente tabla con nombres de ciudades ordenadas alfabéticamente:</p>
<div class="syntax_hilite">
<div id="code-13">
<div class="code">mysql&gt; SELECT id,name FROM City ORDER BY name ASC LIMIT <span style="color:#800000;">15</span>;<br />
+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
| id   | name                 |<br />
+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
|  <span style="color:#800000;">670</span> | A Coruña <span style="color:#006600; font-weight:bold;">&#40;</span>La Coruña<span style="color:#006600; font-weight:bold;">&#41;</span> |<br />
| <span style="color:#800000;">3097</span> | Aachen               |<br />
| <span style="color:#800000;">3318</span> | Aalborg              |<br />
| <span style="color:#800000;">2760</span> | Aba                  |<br />
| <span style="color:#800000;">1404</span> | Abadan               |<br />
|  <span style="color:#800000;">395</span> | Abaetetuba           |<br />
| <span style="color:#800000;">3683</span> | Abakan               |<br />
| <span style="color:#800000;">1849</span> | Abbotsford           |<br />
| <span style="color:#800000;">2747</span> | Abeokuta             |<br />
|  <span style="color:#800000;">478</span> | Aberdeen             |<br />
| <span style="color:#800000;">3191</span> | Abha                 |<br />
| <span style="color:#800000;">2812</span> | Abidjan              |<br />
| <span style="color:#800000;">1703</span> | Abiko                |<br />
| <span style="color:#800000;">3989</span> | Abilene              |<br />
| <span style="color:#800000;">1309</span> | Abohar               |<br />
+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
<span style="color:#800000;">15</span> rows in set <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">0</span>.<span style="color:#800000;">00</span> sec<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</div>
</div>
<p></p>
<p>El código a continuación utiliza una variable @rownum que inicializa como argumento del FROM y se evita de declarar la variable previamente con SET @rownum: = 0;</p>
<p>El resultado es el que veremos abajo, sencillo y sorprendente:</p>
<div class="syntax_hilite">
<div id="code-14">
<div class="code">mysql&gt; SELECT @rownum:=@rownum+<span style="color:#800000;">1</span> <span style="color:#CC0000;">&#8216;row number&#8217;</span>,name <br />
FROM City C , <span style="color:#006600; font-weight:bold;">&#40;</span>SELECT @rownum:=<span style="color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span> R <br />
ORDER BY name ASC LIMIT <span style="color:#800000;">15</span>;<br />
+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
| row number | name                 |<br />
+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
|          <span style="color:#800000;">1</span> | A Coruña <span style="color:#006600; font-weight:bold;">&#40;</span>La Coruña<span style="color:#006600; font-weight:bold;">&#41;</span> |<br />
|          <span style="color:#800000;">2</span> | Aachen               |<br />
|          <span style="color:#800000;">3</span> | Aalborg              |<br />
|          <span style="color:#800000;">4</span> | Aba                  |<br />
|          <span style="color:#800000;">5</span> | Abadan               |<br />
|          <span style="color:#800000;">6</span> | Abaetetuba           |<br />
|          <span style="color:#800000;">7</span> | Abakan               |<br />
|          <span style="color:#800000;">8</span> | Abbotsford           |<br />
|          <span style="color:#800000;">9</span> | Abeokuta             |<br />
|         <span style="color:#800000;">10</span> | Aberdeen             |<br />
|         <span style="color:#800000;">11</span> | Abha                 |<br />
|         <span style="color:#800000;">12</span> | Abidjan              |<br />
|         <span style="color:#800000;">13</span> | Abiko                |<br />
|         <span style="color:#800000;">14</span> | Abilene              |<br />
|         <span style="color:#800000;">15</span> | Abohar               |<br />
+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
<span style="color:#800000;">15</span> rows in set <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">0</span>.<span style="color:#800000;">01</span> sec<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</div>
</div>
<p></p>
<p>Vía: <a href="http://www.oxfordtechnotes.co.uk/sqlblog/blog4.php/2009/04/21/more-on-variables">The road to using MySQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/06/14/generar-una-columna-calculada-autonumerica-en-mysql/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>¿Empezamos a reemplazar a MySQL?</title>
		<link>http://luauf.com/2009/06/04/%c2%bfempezamos-a-reemplazar-mysql/</link>
		<comments>http://luauf.com/2009/06/04/%c2%bfempezamos-a-reemplazar-mysql/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 08:00:14 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mariaDB]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1027</guid>
		<description><![CDATA[Conocida la adquisición de Sun por parte de Oracle son muchos los rumores, comentarios y deducciones que se generaron en toda la comunidad. Lo cierto es que nadie sabe con certeza que será...]]></description>
			<content:encoded><![CDATA[<p>Conocida la adquisición de Sun por parte de Oracle son muchos los rumores, comentarios y deducciones que se generaron en toda la comunidad. Lo cierto es que nadie sabe con certeza que será del futuro de MySQL con esta gran adquisición, pero por las dudas ya se abrieron varios paraguas.</p>
<p>Haciendo un poco de historia, el principio de un final podría iniciarce en enero  de 2008, cuando<strong> MySQL AB</strong>, la compañía detrás de MySQL se convierte en subsidiaria de <strong>Sun</strong>, a su vez última adquirida en abril de 2009 por <strong>Oracle</strong>.</p>
<p><strong>Michael Widenius</strong>, uno de los propietarios de MySQL AB, luego de la primer adquisición mencionada forma <strong>Monty Program AB</strong> y sigue trabajando en una rama independiente de MySQL (MariaDB).</p>
<p>Michel, se asusta más cuando Oracle adquiere Sun y creo <strong>Open Database Alliace</strong> con el objetivo de continuar en forma controlada y/o concentrada el desarrollo de MySQL. Con esto, evitar que la popular base de datos termine desapareciendo y diseminada en un sin-numero de forks de la misma.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1028" title="mini-mysql" src="http://luauf.com/wp-content/uploads/2009/05/mini-mysql.png" alt="mini-mysql" width="125" height="65" /><img class="alignnone size-full wp-image-1029" title="odba_logo" src="http://luauf.com/wp-content/uploads/2009/05/odba_logo.png" alt="odba_logo" width="115" height="96" /></p>
<p><span id="more-1027"></span><strong>MariaDB</strong> es una rama de MySQL que utiliza por defecto el motor de almacenamiento Maria (motor que aún no fue utilizado por MySQL en sus versiones de producción) y tiene el objetivo de ser libre y desarrollada por la comunidad de MySQL, manteniendo la paridad entre las versiones de MySQL, de manera que MariaDB 5.1 esté al día con MySQL 5.1.</p>
<p>Como me parece prematuro hacer anuncios acerca del futuro de <strong>MariaDB</strong> y el de <strong>MySQL</strong>, nos dedicaremos en esta publicación a hacer mención a algunos aspectos técnicos acerca de las diferencias entre ambas.</p>
<ul>
<li>MariaDB incluye el motor de almacenamiento <strong>Maria</strong>, además de incluir el motor <strong>PBXT</strong>.</li>
<li>Las consultas complejas se ejecutarían más rápido, debido a que, a diferencia de <strong>MyISAM</strong>, Maria guarda las tablas temporales en cache en vez de disco.</li>
<li>Cambio en la gestión de <strong>hilos</strong> (eso se iba a incluir en MySQL 6.0). MySQL abre un hilo por conexión, lo que para consultas cortas genera un overhead innecesario, por tal motivo (y alguno que otros más) trae cambios en dicha gestión.</li>
<li>Se cambio el checksum table para ignorar los campos de valor NULL, para que sea más rápido y evite falsos positivos.</li>
<li>Se eliminaron algunos bugs que había en MySQL (clásico en toda actualización de versión).</li>
</ul>
<p>Además, en la versión estable, tienen definido incluir también el motor <strong>XtraDB</strong> (basado en <strong>InnoDB</strong>) y <strong>Federated</strong>, introducir algunos <strong>parches</strong> de la comunidad, hacer un poco de limpieza en el <strong>código</strong> y alguna que otra cosilla.</p>
<p>Vía: <a href="http://begnu.wordpress.com/2009/05/21/sustituto-para-mysql/">beGNU</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/06/04/%c2%bfempezamos-a-reemplazar-mysql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;Tracear&#8221; artesanalmente consultas SQL</title>
		<link>http://luauf.com/2009/06/02/tracear-artesanalmente-consultas-sql/</link>
		<comments>http://luauf.com/2009/06/02/tracear-artesanalmente-consultas-sql/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 08:00:20 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Consultas]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Procesos]]></category>
		<category><![CDATA[Trace]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1025</guid>
		<description><![CDATA[Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de Cómo “tracear” consultas SQL entré inmediatamente debido a que desconocía un...]]></description>
			<content:encoded><![CDATA[<p>Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de <a href="http://dmnet.bitacoras.com/archivos/programacion/como-tracear-consultas-sql.php">Cómo “tracear” consultas SQL</a> entré inmediatamente debido a que desconocía un método para realizar esta tarea. Lo que suele suceder es que aveces queremos resolver los problemas de una forma prolija y elegante y lo cierto es que la solución puede ser bastante más rudimentaria pero muy ingeniosa.</p>
<p>Muchas veces suele ser tarea común la de consultar en MySQL el <a href="http://luauf.com/2008/05/22/monitorear-consultas-en-mysql/">slow query log</a> o verificar en tiempo real con un<a href="http://luauf.com/2009/01/21/15-usos-practicos-de-mysqladmin/"> show processlist</a> cual es esa consulta que está volviendo lento al servidor. Conocida la consulta, ¿como se cual es la aplicación que utiliza dicha consulta?. A menos que conozcamos muy bien nuestro sistema, debemos empezar a buscar en nuestros archivos y hacer algunos que otros <a href="http://luauf.com/2009/05/04/varios-ejemplos-de-uso-del-comando-grep/">grep</a> recursivos hasta encontrar con la aplicación culpable de esa consulta lenta.</p>
<p><span id="more-1025"></span>Esta solución nos evita perder tiempo buscando el fuente que ejecuta la consulta y es tan sencilla como&#8230; <strong>utilizar comentarios en nuestra consulta</strong>. Si! así de fácil y básico como eso, sin dudas muy artesanal, pero efectivo <img src='http://luauf.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="syntax_hilite">
<div id="sql-16">
<div class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #808080; font-style: italic;">/* FILE: procesaDB.c, FUNCTION: getBultos(), LINE 138 */</span> campo1, campo2 <span style="color: #993333; font-weight: bold;">FROM</span> tabla</div>
</div>
</div>
<p></p>
<p>Vía: <a href="http://dmnet.bitacoras.com/archivos/programacion/como-tracear-consultas-sql.php">Delirios de un Informático</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/06/02/tracear-artesanalmente-consultas-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurar replicación nativa de MySQL en varios servidores</title>
		<link>http://luauf.com/2009/04/27/configurar-replicacion-nativa-de-mysql-en-varios-servidores/</link>
		<comments>http://luauf.com/2009/04/27/configurar-replicacion-nativa-de-mysql-en-varios-servidores/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 09:00:06 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[configuracion]]></category>
		<category><![CDATA[replicacion]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=933</guid>
		<description><![CDATA[Los pasos para configurar la replicación de MySQL no eran muy complicados, ¿recuerdas Configurar replicación en MySQL? Ahora si quisieramos que la replicación se haga en varios servidores. Básicamente la historia es la...]]></description>
			<content:encoded><![CDATA[<p>Los pasos para configurar la replicación de MySQL no eran muy complicados, ¿recuerdas <a href="http://luauf.com/2008/06/09/configurar-replicacion-en-mysql/">Configurar replicación en MySQL</a>?</p>
<p>Ahora si quisieramos que la replicación se haga en varios servidores. Básicamente la historia es la misma en cuanto a la creación de usuarios y los seteos para el log binario.</p>
<p>¿Qué cambia? ¿Que debo agregar? ¿Que recaudos debo tomar?</p>
<p><span id="more-933"></span></p>
<p>Vayamos por parte:</p>
<ul>
<li>¿Que cambia? nada, simplemente tendremos más archivos a modificar (/etc/my.cnf)</li>
<li>¿Que debo agregar? además de los seteos clásicos con el host, usuario y contraseña del &#8220;master&#8221;, agregaremos algunas opciones para tomar ciertos recaudos</li>
<li>¿Que recaudos debo tomar? lo principal viene dado por los campos auto incrementales, donde se recomienda modificar las opciones de desplazamiento (auto-increment-increment) y valor de los autoincrementales (auto-increment-offset). Finalmente, también es fundamental seter en 0 la variable replicate-same-server-id para evitar loops infinitos.</li>
</ul>
<p>Asumiendo que tenemos resuelto el tema de los usuarios y configurados los logs binarios, esto es lo que deberiamos hacer para configurar la replicación nativa en un total de cuatro servidores:</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2009/04/replicacion.png"><img class="alignnone size-full wp-image-934" title="replicacion" src="http://luauf.com/wp-content/uploads/2009/04/replicacion.png" alt="replicacion" width="282" height="251" /></a></p>
<ul>
<li><strong>Servidor 1</strong>
<ul>
<li>Modificar el archivo /etc/my.cnf</li>
</ul>
</li>
</ul>
<div class="syntax_hilite">
<div id="code-21">
<div class="code"><span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span><br />
<span style="color:#006600; font-weight:bold;">&#91;</span>mysqld<span style="color:#006600; font-weight:bold;">&#93;</span><br />
server-id = <span style="color:#800000;">1</span><br />
replicate-same-server-id = <span style="color:#800000;">0</span><br />
auto-increment-increment = <span style="color:#800000;">4</span><br />
auto-increment-offset = <span style="color:#800000;">1</span></p>
<p>master-host = <span style="color:#800000;">192</span>.<span style="color:#800000;">168</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">4</span><br />
master-user = usuario_slave_para_s1<br />
master-password = password_usuario_slave_para_s1<br />
master-connect-retry = <span style="color:#800000;">60</span><br />
replicate-do-db = example<br />
<span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</div>
</div>
<p></p>
<ul>
<li>Reiniciar el servidor</li>
</ul>
</li>
</ul>
<p>En Linux:<codeline>/etc/init.d/mysql restart</codeline></p>
<ul>
<li><strong>Servidor 2</strong>
<ul>
<li>Modificar el archivo /etc/my.cnf</li>
</ul>
</li>
</ul>
<div class="syntax_hilite">
<div id="code-22">
<div class="code"><span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span><br />
<span style="color:#006600; font-weight:bold;">&#91;</span>mysqld<span style="color:#006600; font-weight:bold;">&#93;</span><br />
server-id = <span style="color:#800000;">2</span><br />
replicate-same-server-id = <span style="color:#800000;">0</span><br />
auto-increment-increment = <span style="color:#800000;">4</span><br />
auto-increment-offset = <span style="color:#800000;">2</span></p>
<p>master-host = <span style="color:#800000;">192</span>.<span style="color:#800000;">168</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">1</span><br />
master-user = usuario_slave_para_s2<br />
master-password = password_usuario_slave_para_s2<br />
master-connect-retry = <span style="color:#800000;">60</span><br />
replicate-do-db = example<br />
<span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</div>
</div>
<p></p>
<ul>
<li>Reiniciar el servidor</li>
</ul>
</li>
</ul>
<p>En Linux:<codeline>/etc/init.d/mysql restart</codeline></p>
<ul>
<li><strong>Servidor 3</strong>
<ul>
<li>Modificar el archivo /etc/my.cnf</li>
</ul>
</li>
</ul>
<div class="syntax_hilite">
<div id="code-23">
<div class="code"><span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span><br />
<span style="color:#006600; font-weight:bold;">&#91;</span>mysqld<span style="color:#006600; font-weight:bold;">&#93;</span><br />
server-id = <span style="color:#800000;">3</span><br />
replicate-same-server-id = <span style="color:#800000;">0</span><br />
auto-increment-increment = <span style="color:#800000;">4</span><br />
auto-increment-offset = <span style="color:#800000;">3</span></p>
<p>master-host = <span style="color:#800000;">192</span>.<span style="color:#800000;">168</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">2</span><br />
master-user = usuario_slave_para_s3<br />
master-password = password_usuario_slave_para_s3<br />
master-connect-retry = <span style="color:#800000;">60</span><br />
replicate-do-db = example<br />
<span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</div>
</div>
<p></p>
<ul>
<li>Reiniciar el servidor</li>
</ul>
</li>
</ul>
<p>En Linux:<codeline>/etc/init.d/mysql restart</codeline></p>
<ul>
<li><strong>Servidor 4<br />
</strong></p>
<ul>
<li>Modificar el archivo /etc/my.cnf</li>
</ul>
</li>
</ul>
<div class="syntax_hilite">
<div id="code-24">
<div class="code"><span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span><br />
<span style="color:#006600; font-weight:bold;">&#91;</span>mysqld<span style="color:#006600; font-weight:bold;">&#93;</span><br />
server-id = <span style="color:#800000;">4</span><br />
replicate-same-server-id = <span style="color:#800000;">0</span><br />
auto-increment-increment = <span style="color:#800000;">4</span><br />
auto-increment-offset = <span style="color:#800000;">4</span></p>
<p>master-host = <span style="color:#800000;">192</span>.<span style="color:#800000;">168</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">3</span><br />
master-user = usuario_slave_para_s4<br />
master-password = password_usuario_slave_para_s4<br />
master-connect-retry = <span style="color:#800000;">60</span><br />
replicate-do-db = example<br />
<span style="color:#006600; font-weight:bold;">&#91;</span>&#8230;<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</div>
</div>
<p></p>
<ul>
<li>Reiniciar el servidor</li>
</ul>
</li>
</ul>
<p>En Linux:<codeline>/etc/init.d/mysql restart</codeline></p>
<p>Omitiremos el paso de igualar las bases de datos, pues daremos por supuesto que se encuentran igualadas o bien que se trata de una instalación de cero.</p>
<p>Vía: <a href="http://www.howtoforge.com/setting-up-master-master-replication-on-four-nodes-with-mysql-5-on-debian-etch-p2">HowToForge</a></p>
<p>Más información en <a href="http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html?page=2">ONLamp.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/04/27/configurar-replicacion-nativa-de-mysql-en-varios-servidores/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Backups programados de MySQL en Windows</title>
		<link>http://luauf.com/2009/04/13/backups-programados-de-mysql-en-windows/</link>
		<comments>http://luauf.com/2009/04/13/backups-programados-de-mysql-en-windows/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 10:00:26 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bat]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[programador de tareas]]></category>
		<category><![CDATA[shell script]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=920</guid>
		<description><![CDATA[En alguna ocasión ya hemos hablado de realizar backups de MySQL en Linux o cualquier otro clon de UNIX utilizando mysqldump y un pequeño shell script que se ejecute por el cron. Ahora...]]></description>
			<content:encoded><![CDATA[<p>En alguna ocasión ya hemos hablado de realizar backups de MySQL en Linux o cualquier otro clon de UNIX utilizando <a href="http://luauf.com/tag/mysqldump/">mysqldump</a> y un pequeño <a href="http://luauf.com/2008/05/17/mysql-shell-script-backup/">shell script</a> que se ejecute por el <a href="http://luauf.com/2009/03/09/cron-cheat-sheet/">cron</a>.</p>
<p>Ahora ¿si debemos hacer lo mismo pero en <a href="windows">Windows</a>?</p>
<p>Básicamente el proceso es el mismo, general un script (en Windows escribiremos un .bat) y  configuraremos la ejecución del mismo en el Programador de Tareas.</p>
<p><span id="more-920"></span></p>
<p>La idea está! pero si mis nociones en el bash de UNIX son limitadas, ni hablar de un archivo de procesamiento por lotes para Windows. De todas formas, algo logré hacer como para suplir mi necesidad. El script es muy básico, pero con un poco más de aprendizaje y de los siempre bienvenidos aportes lo iremos modificando:</p>
<div class="syntax_hilite">
<div id="code-26">
<div class="code">BACKUP_PATH=d:\backup\<br />
DB_NAME=test</p>
<p>set FECHA= %date%<br />
set FECHA=%FECHA%:/=%s<br />
set FECHA=%FECHA%: =%s<br />
set FECHA=%FECHA%::=%s<br />
set FECHA=%FECHA%:,=%s<br />
set BACKUP_FILE=%BACKUP_PATH%backup_%DB_NAME%_%fecha%.<span style="">sql</span></p>
<p>mysqldump -u%DB_USER% -p%DB_NAME% %DB_NAME%&amp;gt; %BACKUP_FILE%</p></div>
</div>
</div>
<p></p>
<p>Este script crea un archivo diario (ten cuidado que no se transforme en un &#8220;come disco&#8221;). Adeudo para la próxima entrega una pequeña lógica de purgado de archivos.</p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/04/13/backups-programados-de-mysql-en-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

