<?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>Damián Culotta &#187; Mysql</title>
	<atom:link href="http://www.damianculotta.com.ar/category/bases-de-datos/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.damianculotta.com.ar</link>
	<description>Sería un &#34;bienvenidos a mi&#34;, pero Rozitchner me ganó de mano</description>
	<lastBuildDate>Thu, 05 Jan 2012 09:10:45 +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>Update con Subselect en Mysql</title>
		<link>http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 20:39:55 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=1533</guid>
		<description><![CDATA[Es posible que en algunas oportunidades necesitemos hacer una actualización a una tabla en donde la clave a utilizar en el where nos sea desconocida, y que sólo podamos obtenerla partiendo de una segunda clave en una segunda tabla. El &#8230; <a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es posible que en algunas oportunidades necesitemos hacer una actualización a una tabla en donde la clave a utilizar en el where nos sea desconocida, y que sólo podamos obtenerla partiendo de una segunda clave en una segunda tabla.</p>
<p>El truco para ésto es utilizar <a title="documentación oficial" href="http://dev.mysql.com/doc/refman/5.0/es/subqueries.html" target="_self">subconsultas</a>.</p>
<p>Lo más probable es que al pensar en esto, escriban un ejemplo como el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span>
  tabla1
<span style="color: #990099; font-weight: bold;">SET</span>
  campo <span style="color: #CC0099;">=</span> <span style="color: #008000;">'nuevo<span style="color: #008080; font-weight: bold;">_</span>valor'</span>
<span style="color: #990099; font-weight: bold;">WHERE</span>
  campo_de_referencia <span style="color: #CC0099;">=</span> <span style="color: #FF00FF;">&#40;</span>
    <span style="color: #990099; font-weight: bold;">SELECT</span>
      tabla1.valor
    <span style="color: #990099; font-weight: bold;">FROM</span>
      tabla1<span style="color: #000033;">,</span>
      tabla2
    <span style="color: #990099; font-weight: bold;">WHERE</span>
      tabla1.campo <span style="color: #CC0099;">=</span> <span style="color: #008000;">'viejo<span style="color: #008080; font-weight: bold;">_</span>valor'</span>
      <span style="color: #CC0099; font-weight: bold;">AND</span>
      tabla1.clave_primaria <span style="color: #CC0099;">=</span> tabla2.clave_foranea
      <span style="color: #CC0099; font-weight: bold;">AND</span>
      tabla2.campo_de_referencia <span style="color: #CC0099;">=</span> <span style="color: #008000;">'otro<span style="color: #008080; font-weight: bold;">_</span>valor'</span>
  <span style="color: #FF00FF;">&#41;</span>
<span style="color: #000033;">;</span></pre></div></div>

<p>Lamentablemente, ésto no va a funcionar y van a obtener el siguiente error.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">You can't specify target table 'tabla1' for update in FROM clause</pre></div></div>

<p><span id="more-1533"></span>Esto se debe a que como restricción, no puede actualizarse una tabla y al mismo tiempo hacer una consulta sobre si misma.</p>
<p>¿Cuál es la solución entonces?, utilizar un alias para la subconsulta.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span>
  tabla1
<span style="color: #990099; font-weight: bold;">SET</span>
  campo <span style="color: #CC0099;">=</span> <span style="color: #008000;">'nuevo<span style="color: #008080; font-weight: bold;">_</span>valor'</span>
<span style="color: #990099; font-weight: bold;">WHERE</span>
  campo_de_referencia <span style="color: #CC0099;">=</span> <span style="color: #FF00FF;">&#40;</span>
    <span style="color: #990099; font-weight: bold;">SELECT</span>
      valor
    <span style="color: #990099; font-weight: bold;">FROM</span>
      <span style="color: #FF00FF;">&#40;</span>
        <span style="color: #990099; font-weight: bold;">SELECT</span>
          tabla1.valor
        <span style="color: #990099; font-weight: bold;">FROM</span>
          tabla1<span style="color: #000033;">,</span>
          tabla2
        <span style="color: #990099; font-weight: bold;">WHERE</span>
          tabla1.campo <span style="color: #CC0099;">=</span> <span style="color: #008000;">'viejo<span style="color: #008080; font-weight: bold;">_</span>valor'</span>
          <span style="color: #CC0099; font-weight: bold;">AND</span>
          tabla1.clave_primaria <span style="color: #CC0099;">=</span> tabla2.clave_foranea
          <span style="color: #CC0099; font-weight: bold;">AND</span>
          tabla2.campo_de_referencia <span style="color: #CC0099;">=</span> <span style="color: #008000;">'otro<span style="color: #008080; font-weight: bold;">_</span>valor'</span>
      <span style="color: #FF00FF;">&#41;</span>
    <span style="color: #990099; font-weight: bold;">AS</span> alias_tabla1
  <span style="color: #FF00FF;">&#41;</span>
<span style="color: #000033;">;</span></pre></div></div>

<p>Ahora si, nuestra subconsulta queda encerrada en un alias, y ese alias es el que se aplica para la subconsulta en el update.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1533" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/" title="Convirtiendo de Timestamp a Date desde Mysql">Convirtiendo de Timestamp a Date desde Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo crear un trigger con un Definer específico en Mysql</title>
		<link>http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 04:36:57 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[administración]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=1021</guid>
		<description><![CDATA[Normalmente, cuando se trabaja en entornos de desarrollo locales, se suele dejar al usuario con mayor privilegio y con eso aguantamos hasta el momento de pasar a producción. Es en ese pasaje cuando descubrimos que el usuario que tenemos asignado &#8230; <a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Normalmente, cuando se trabaja en entornos de desarrollo locales, se suele dejar al usuario con mayor privilegio y con eso aguantamos hasta el momento de pasar a producción.</p>
<p>Es en ese pasaje cuando descubrimos que el usuario que tenemos asignado está totalmente restringido sólo a nuestra base de datos, y hay ciertas operaciones que pueden resultar imposibles de resolver.</p>
<p>Un escenario posible seria al intentar crear un trigger, obtengamos un error por falta de privilegios.</p>
<p>Si además de éste usuario, podemos acceder a uno con privilegios más elevados (el usuario root es el habitual), podríamos crear el trigger.</p>
<p>Esto tampoco nos va a servir, porque cuando el usuario sin privilegios quiere ejecutar el trigger, le será negada la operación ya que el propietario del trigger es quien lo creó (en este coloquial ejemplo, sería propiedad del usuario root).</p>
<p>Ahora bien, la forma de poder crear un trigger pero asignándole un propietario que no se corresponde con el usuario que esté ejecutando, seria la siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">DEFINER</span> <span style="color: #CC0099;">=</span> <span style="color: #008000;">'usuario'</span>@<span style="color: #008000;">'host'</span> <span style="color: #990099; font-weight: bold;">TRIGGER</span> mi_trigger BEFORE <span style="color: #990099; font-weight: bold;">INSERT</span> <span style="color: #990099; font-weight: bold;">ON</span> mi_tabla
  <span style="color: #990099; font-weight: bold;">FOR EACH ROW</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
&nbsp;
  <span style="color: #808000; font-style: italic;">/* El código que tengamos que usar */</span>
&nbsp;
<span style="color: #009900;">END</span><span style="color: #000033;">;</span></pre></div></div>

<p>De ésta forma, al crearlo con el usuario con privilegios, vamos a poder ejecutar la sentencia de creación del trigger y éste va a estar disponible para el usuario restringido que le indiquemos.</p>
<p>(Más que post esto parece un post-it)</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1021" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/" title="Convirtiendo de Timestamp a Date desde Mysql">Convirtiendo de Timestamp a Date desde Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Duplicando una tabla en Mysql</title>
		<link>http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 01:47:09 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=962</guid>
		<description><![CDATA[Hay ocasiones en las que necesitamos hacer pruebas sobre una tabla que se encuentra en producción. Una forma rápida de hacer esa prueba sin afectar los datos, es hacer una copia de la tabla. En realidad, si tenemos tiempo siempre &#8230; <a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hay ocasiones en las que necesitamos hacer pruebas sobre una tabla que se encuentra en producción.</p>
<p>Una forma rápida de hacer esa prueba sin afectar los datos, es hacer una copia de la tabla.</p>
<p>En realidad, si tenemos tiempo siempre será más cómodo llevar esos datos a un entorno de staging para trabajar más tranquilos; vamos a pensar que no tenemos tiempo&#8230; y mucho menos un entorno se staging.</p>
<p>Si queremos duplicar nuestra tabla, sólo debemos ejecutar la siguiente instrucción:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> tabla_nueva <span style="color: #CC0099; font-weight: bold;">LIKE</span> tabla_original<span style="color: #000033;">;</span></pre></div></div>

<p>De ésta forma. obtenemos una tabla idéntica en cuanto a estructura.</p>
<p>Si necesitamos los datos de esa tabla en nuestra copia, insertamos todos los registros de la original de la siguiente forma:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">INSERT</span> <span style="color: #990099; font-weight: bold;">INTO</span> tabla_nueva <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> tabla_original<span style="color: #000033;">;</span></pre></div></div>

<p>Al haber una correspondencia exacta en cuanto a las columnas y tipos de datos, los registros son insertados sin mayor problema.</p>
<p>Hay una segunda forma de obtener el mismo resultado que las dos consultas previas. Podemos, con una sola instrucción, lograr la misma tabla.</p>
<p>En este caso, debemos ejecutar:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> tabla_nueva <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> tabla_original<span style="color: #000033;">;</span></pre></div></div>

<p>Con esto, dos formas muy rápidas de duplicar una tabla y, si se quiere, sus datos.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=962" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/" title="Convirtiendo de Timestamp a Date desde Mysql">Convirtiendo de Timestamp a Date desde Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cambiando el Definer de un Procedure en Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 22:19:57 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[administración]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=620</guid>
		<description><![CDATA[En el día de ayer, nos tocó hacer un deploy en un VPS. Hubo un pequeño error a causa de la falta de control (tanto de nuestro lado como del de los implementadores), y cuando se importó la base de &#8230; <a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En el día de ayer, nos tocó hacer un deploy en un <a title="definición en Wikipedia" href="http://es.wikipedia.org/wiki/Servidor_virtual" target="_self">VPS</a>.</p>
<p>Hubo un pequeño error a causa de la falta de control (tanto de nuestro lado como del de los implementadores), y cuando se importó la base de datos, se crearon los <a title="definición en Wikipedia" href="http://es.wikipedia.org/wiki/Stored_procedure" target="_self">Procedure</a> con un usuario propietario que no era el mismo que teníamos para acceder a la base de datos.</p>
<p>Luego de lidiar un rato, logramos que nos facilitaran el usuario root de <a title="sitio oficial" href="http://www.mysql.com/" target="_self">Mysql</a>, y ahí fue otro cantar.</p>
<p>Antes de conseguir el usuario, uno de los caminos era arreglar el script sql y mandarlo nuevamente para que se borrara la base de datos y se volviera a importar.</p>
<p>Si bien cumple su cometido, hay otro aún más sencillo e igual de efectivo.</p>
<p>Ya con un usuario con los permisos necesarios, para conocer qué Procedures tenemos definidos en nuestras bases de datos dentro de <a title="sitio oficial" href="http://www.mysql.com/" target="_self">Mysql</a>, sólo es necesario correr ésta consulta.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> mysql.proc<span style="color: #000033;">;</span></pre></div></div>

<p>Así veremos todos los que tengamos definidos, sin importar ninguna condición.</p>
<p><span id="more-620"></span>Para el problema que se había presentado, había que modificar el propietario (Definer) de esas funciones. Por suerte, nada que un par de queries no puedan arreglar.</p>
<p>Lo primero es aislar el set de registros que vamos a modificar, al menos, como seguridad.</p>
<p>Para eso, corremos esta consulta.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> mysql.proc <span style="color: #990099; font-weight: bold;">WHERE</span> <span style="color: #990099; font-weight: bold;">definer</span> <span style="color: #CC0099;">=</span> <span style="color: #008000;">'usuario1@dominio1'</span><span style="color: #000033;">;</span></pre></div></div>

<p>Vamos a ver todos las funciones que están definidas con ese usuario como propietario.</p>
<p>Ahora, para cambiarlo, alcanza con hacer un update a esos registros. En nuestro ejemplo, correríamos ésta otra consulta.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> mysql.proc <span style="color: #990099; font-weight: bold;">SET</span> <span style="color: #990099; font-weight: bold;">definer</span> <span style="color: #CC0099;">=</span> <span style="color: #008000;">'usuario2'</span>@<span style="color: #008000;">'dominio2'</span> <span style="color: #990099; font-weight: bold;">WHERE</span> <span style="color: #990099; font-weight: bold;">definer</span> <span style="color: #CC0099;">=</span> <span style="color: #008000;">'usuario1@dominio1'</span><span style="color: #000033;">;</span></pre></div></div>

<p>Y para finalizar, hacemos efectivos los cambios en los privilegios.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">FLUSH <span style="color: #990099; font-weight: bold;">PRIVILEGES</span><span style="color: #000033;">;</span></pre></div></div>

<p>Asunto resuelto, ya tenemos arreglado este pequeño problema de permisos.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=620" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/" title="Convirtiendo de Timestamp a Date desde Mysql">Convirtiendo de Timestamp a Date desde Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Convirtiendo de Timestamp a Date desde Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 02:37:43 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=517</guid>
		<description><![CDATA[Cuando estaba a punto de irme de la oficina, Guille me tiró una preguntita, de esas que hacen que cuando no te acordás, te pongas a probar y probar hasta resolverlo. La pregunta se refería a cómo pasar una fecha &#8230; <a href="http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cuando estaba a punto de irme de la oficina, <a title="las mejores fotos, videos e imagenes de la web" href="http://www.gatosenelteclado.com.ar/blog/" target="_self">Guille</a> me tiró una preguntita, de esas que hacen que cuando no te acordás, te pongas a probar y probar hasta resolverlo.</p>
<p>La pregunta se refería a cómo pasar una fecha en formato <a title="definición en Wikipedia" href="http://es.wikipedia.org/wiki/Timestamp" target="_self">Timestamp</a> al formato Date (una representación más humana).</p>
<p>Lo primero que pensé fue en usar <a title="sitio oficial" href="http://www.php.net" target="_self">Php</a> (por asumir qué así lo quería hacer), pero no, lo que quería era sacar el registro, directamente desde la base de datos, aplicando la conversión en el propio <a title="sitio oficial" href="http://www.mysql.com/" target="_self">Mysql</a> al momento de la consulta.</p>
<p>Como ya me ha pasado en otras ocasiones, supuse que encontraría en la documentación alguna función mágica que resolviera el problema&#8230; y por suerte, no me equivoqué.</p>
<p>Para convertir directamente desde la consulta una fecha desde timestamp a date, sólo hay que aplicar la siguiente función:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">select</span> <span style="color: #000099;">from_unixtime</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">1224815188</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<p>El resultado que obtenemos es:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">2008</span>-<span style="color: #000000;">10</span>-<span style="color: #000000;">24</span> 00:<span style="color: #000000;">26</span>:<span style="color: #000000;">28</span></pre></div></div>

<p>Nada más, con eso, problema resuelto.</p>
<p>Para más referencias sobre funciones de fecha, pueden mirar en la <a title="documentación sobre fechas y funciones en Mysql" href="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html" target="_self">documentación oficial</a>.</p>
<p>(Otro post cortito y al pié).</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=517" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/10/24/convirtiendo-de-timestamp-a-date-desde-mysql/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Restaurar backups de Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/10/15/restaurar-backups-de-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/10/15/restaurar-backups-de-mysql/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 03:45:08 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[backups]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=436</guid>
		<description><![CDATA[En ésta oportunidad, vamos a ver cómo restaurar una base de datos en Mysql. Además, algunas aclaraciones sobre el uso de mysqldump que pueden ayudarnos con las restauraciones de bases de datos. La forma de restaurar una base de datos &#8230; <a href="http://www.damianculotta.com.ar/2008/10/15/restaurar-backups-de-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En ésta oportunidad, vamos a ver cómo restaurar una base de datos en Mysql. Además, algunas aclaraciones sobre el uso de mysqldump que pueden ayudarnos con las restauraciones de bases de datos.</p>
<p>La forma de restaurar una base de datos <a title="sitio oficial" href="http://www.mysql.com/" target="_self">Mysql</a> desde la consola, tomando un backup, sería asi.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql <span style="color: #660033;">-u</span> usuario <span style="color: #660033;">-p</span> basededatos <span style="color: #000000; font-weight: bold;">&lt;</span> basededatos.sql</pre></div></div>

<p>El escenario que estoy suponiendo, implica que la base de datos que están queriendo importar no existe en su servidor Mysql.</p>
<p>Si este supuesto es correcto, se van a encontrar con un problemita, o mejor dicho, con un mensaje al ejecutar el comando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ERROR <span style="color: #000000;">1049</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">42000</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>: Unknown database <span style="color: #ff0000;">'basededatos'</span></pre></div></div>

<p>Esto se debe a la inexistencia de la base dentro de nuestro <a title="sitio oficial" href="http://www.mysql.com/" target="_self">Mysql</a>.</p>
<p>Tenemos dos maneras de resolver ésta situación.</p>
<ol>
<li>Editar el archivo sql y agregarle a mano los comandos necesarios para la creación de la base.</li>
<li>Agregar dos parámetros a nuestro comando mysqldump.</li>
</ol>
<p><span id="more-436"></span>En el primer caso, deberíamos agregar a nuestro archivo, las siguientes instrucciones.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">DATABASE</span> basededatos<span style="color: #000033;">;</span>
<span style="color: #990099; font-weight: bold;">USE</span> <span style="color: #990099; font-weight: bold;">DATABASE</span> basededatos<span style="color: #000033;">;</span></pre></div></div>

<p>Con esto, el script funcionaría correctamente. Lo malo de ésta forma, es que si tenemos backups muy muy pesados, puede resultar algo engorroso estar editándolos.</p>
<p>Para evitarnos este paso, vamos a cambiar la forma de ejecutar mysqldump.</p>
<p>Lo habitual y más simple para hacer el backup sería ejecutar el comando de ésta forma.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysqldump <span style="color: #660033;">-hhost</span> <span style="color: #660033;">-uusuario</span> <span style="color: #660033;">-ppassword</span> basededatos <span style="color: #000000; font-weight: bold;">&gt;</span> basededatos.sql</pre></div></div>

<p>Como ya dije, esto no nos funcionará correctamente. Así que vamos a sumar algunos parámetros para estar más tranquilos.</p>
<p>Los parámetros en cuestión son:</p>
<ul>
<li>databases</li>
<li>add-drop-database</li>
</ul>
<p>Con databases mysqldump agregará automáticamente las instrucciones de creación y uso de base de datos.</p>
<p>Ahora bien, podría darse que por algún motivo, la base de datos existiera. Para evitar el conflicto, es que agregamos add-drop-database. Con ésto, nos garantizamos que se agregue la instrucción de dropeo de la base de datos antes de la instrucción de creación de la misma.</p>
<p>Nuestro nuevo dump se ejecutaría asi.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysqldump <span style="color: #660033;">--add-drop-database</span> <span style="color: #660033;">--databases</span> <span style="color: #660033;">-hhost</span> <span style="color: #660033;">-uusuario</span> <span style="color: #660033;">-ppassword</span> basededatos <span style="color: #000000; font-weight: bold;">&gt;</span> basededatos.sql</pre></div></div>

<p>Ahora si, cuando volvamos a ejecutar la restauración, nuestra base de datos debería quedar restaurada sin problema alguno.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=436" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2008/08/28/backup-de-bases-de-datos-en-mysql/" title="Backup de bases de datos en Mysql">Backup de bases de datos en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/06/23/restaurar-un-backup-plano-en-postgresql/" title="Restaurar un backup plano en PostgreSql">Restaurar un backup plano en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/10/15/restaurar-backups-de-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OLD_PASSWORD en Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/09/10/old_password-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/09/10/old_password-en-mysql/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 12:13:59 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=182</guid>
		<description><![CDATA[Cuando Mysql pasó a la versión 4.1, la mayoría hicimos el cambio, actualizamos la base de datos, se habrá ajustado el código si correspondía, y se actualizaron los conectores de Mysql. Uno de los cambios fue en el algoritmo de &#8230; <a href="http://www.damianculotta.com.ar/2008/09/10/old_password-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cuando <a title="sitio oficial" href="http://www.mysql.com/" target="_self">Mysql</a> pasó a la versión 4.1, la mayoría hicimos el cambio, actualizamos la base de datos, se habrá ajustado el código si correspondía, y se actualizaron los <a title="interfases para acceder al motor" href="http://dev.mysql.com/downloads/connector/" target="_self">conectores de Mysql</a>.</p>
<p>Uno de los cambios fue en el algoritmo de autenticación que utiliza la base de datos.</p>
<p>Muchos de los programas que se utilizaban, hicieron lo propio, y también actualizaron; pero hubieron algunos que no lo lograron (por los motivos que sea). En mi caso, fue el <a title="editor visual para Mysql" href="http://www.fabforce.net/dbdesigner4/" target="_self">DBDesigner</a> el que me trajo algo de dolor de cabeza.</p>
<p>Al querer conectarse, se obtenía un poco agradable mensaje que rezaba.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">Client does <span style="color: #CC0099; font-weight: bold;">not</span> support authentication protocol requested
by server<span style="color: #000033;">;</span> consider upgrading MySQL client</pre></div></div>

<p>Por suerte, existe una solución de compatibilidad.</p>
<p><span id="more-182"></span>El truco está en la forma en que especificamos la contraseña del usuario que vamos a usar desde el cliente problemático. La instrucción para lograr que dicho usuario se conecte sería la siguiente.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">SET</span> <span style="color: #000099;">PASSWORD</span> FOR <span style="color: #008000;">'usuario'</span>@<span style="color: #008000;">'host'</span> <span style="color: #CC0099;">=</span> <span style="color: #000099;">OLD_PASSWORD</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'contraseña'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<p>Es la función old_password la encargada de garantizarnos la compatibilidad.</p>
<p>Como siempre, una visita por la <a title="documentación sobre old_password()" href="http://dev.mysql.com/doc/refman/5.0/es/old-client.html" target="_self">documentación oficial</a> nunca está de más.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=182" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/09/10/old_password-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantenimiento de tablas en Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/09/08/mantenimiento-de-tablas-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/09/08/mantenimiento-de-tablas-en-mysql/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 21:00:49 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=200</guid>
		<description><![CDATA[Pequeña gran instrucción para mantener la salud de nuestras tablas. OPTIMIZE TABLE tabla; Lo que logramos es eliminar por completo todo el espacio ocupado por registros que ya han sido borrados. Si esto lo pensamos sobre una tabla que tiene, &#8230; <a href="http://www.damianculotta.com.ar/2008/09/08/mantenimiento-de-tablas-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pequeña gran instrucción para mantener la salud de nuestras tablas.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">OPTIMIZE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> tabla<span style="color: #000033;">;</span></pre></div></div>

<p>Lo que logramos es eliminar por completo todo el espacio ocupado por registros que ya han sido borrados. Si esto lo pensamos sobre una tabla que tiene, como mínimo, miles de escrituras diarias, vamos a poder ver cómo ayuda la ejecución periódica de ésta sentencia.</p>
<p>Para más información, <a title="especificaciones del optimize table" href="http://dev.mysql.com/doc/refman/5.0/en/optimize-table.html" target="_self">la documentación oficial</a>.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=200" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/09/08/mantenimiento-de-tablas-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recuperar contraseña de root en Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/09/08/recuperar-contrasena-de-root-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/09/08/recuperar-contrasena-de-root-en-mysql/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 03:15:22 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=139</guid>
		<description><![CDATA[Hace un par de días, me tocó tener que configurar varios servicios de un servidor recién instalado (por otra persona). Como puede darse en estos casos, a veces la documentación que te facilitan, no coincide con la realidad. En mi &#8230; <a href="http://www.damianculotta.com.ar/2008/09/08/recuperar-contrasena-de-root-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días, me tocó tener que configurar varios servicios de un servidor recién instalado (por otra persona). Como puede darse en estos casos, a veces la documentación que te facilitan, no coincide con la realidad.</p>
<p>En mi caso, no había forma de acceder a Mysql. El usuario root no respondía en lo más mínimo. Es por eso que recurrí a mi memoria y a mis apuntes, y me dispuse a cambiar la contraseña del usuario root.</p>
<p>A continuación, los pasos para cuando nos topemos con la misma situación (el ejemplo está basado en su aplicación sobre Linux).</p>
<p>Detenemos el servicio de Mysql.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>mysql stop</pre></div></div>

<p><span id="more-139"></span>Luego vamos a iniciarlo en modo seguro, saltándonos la seguridad de usuario</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysqld_safe <span style="color: #660033;">--skip-grant-tables</span> <span style="color: #000000; font-weight: bold;">&amp;</span></pre></div></div>

<p>Ahora si, invocamos a Mysql.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql</pre></div></div>

<p>Nos paramos sobre la base de datos de Mysql.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql<span style="color: #000000; font-weight: bold;">&gt;</span> USE mysql;</pre></div></div>

<p>Una vez que se nos confirme el cambio, ingresamos la siguiente consulta.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql<span style="color: #000000; font-weight: bold;">&gt;</span> UPDATE user SET <span style="color: #007800;">password</span>=PASSWORD<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'contraseña'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> WHERE user = <span style="color: #ff0000;">'root'</span>;</pre></div></div>

<p>Y para finalizar.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql<span style="color: #000000; font-weight: bold;">&gt;</span> FLUSH PRIVILEGES;</pre></div></div>

<p>Ahora si, ya tenemos al usuario root con la contraseña que querramos.</p>
<p>Por supuesto, usamos el caso del usuario root por presuponer que no hay forma de acceder y queremos retomar el control del usuario con mayor privilegio dentro del Mysql, pero este procedimiento podría aplicarse para cualquier usuario que querramos&#8230; incluso, esta forma de ingresar en el motor, sirve para ejecutar cualquier acción.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=139" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/01/30/duplicando-una-tabla-en-mysql/" title="Duplicando una tabla en Mysql">Duplicando una tabla en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2008/10/29/cambiando-el-definer-de-un-procedure-en-mysql/" title="Cambiando el Definer de un Procedure en Mysql">Cambiando el Definer de un Procedure en Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/09/08/recuperar-contrasena-de-root-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup de bases de datos en Mysql</title>
		<link>http://www.damianculotta.com.ar/2008/08/28/backup-de-bases-de-datos-en-mysql/</link>
		<comments>http://www.damianculotta.com.ar/2008/08/28/backup-de-bases-de-datos-en-mysql/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 23:02:42 +0000</pubDate>
		<dc:creator>Damián</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[backups]]></category>

		<guid isPermaLink="false">http://www.damianculotta.com.ar/?p=112</guid>
		<description><![CDATA[Hoy un post cortito, pero no por eso, menos efectivo. Si leíste mis últimos posts, creo que se nota la importancia que le doy al resguardo de la información. Es por eso que vamos a ver que sencillo es hacer &#8230; <a href="http://www.damianculotta.com.ar/2008/08/28/backup-de-bases-de-datos-en-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoy un post cortito, pero no por eso, menos efectivo.</p>
<p>Si leíste mis últimos posts, creo que se nota la importancia que le doy al resguardo de la información.</p>
<p>Es por eso que vamos a ver que sencillo es hacer un backup de una base de datos de Mysql.</p>
<p>Lo único que necesitamos, es ejecutar el siguiente comando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysqldump <span style="color: #660033;">-hhost</span> <span style="color: #660033;">-uusuario</span> <span style="color: #660033;">-ppassword</span> basededatos <span style="color: #000000; font-weight: bold;">&gt;</span> basededatos.sql</pre></div></div>

<p>Si bien es bastante calaro, vamos con la explicación del comando.</p>
<p><span id="more-112"></span></p>
<ul>
<li>mysqldump es el comando propiamente dicho.</li>
<li>-h le indica el host del cual vamos a hacer el backup.</li>
<li>-u el usuario con los privilegios necesarios para acceder a la base de datos.</li>
<li>-p contraseña del usuario.</li>
<li>nombre de la base de datos a backupear.</li>
<li>al final, el nombre que le querramos poner al backup generado.</li>
</ul>
<p>Listo, esto puede ir a un script, ya sea la plataforma que uses, y dejarlo automatizado.</p>
 <img src="http://www.damianculotta.com.ar/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=112" width="1" height="1" style="display: none;" /><h2  class="related_post_title">A lo mejor te interese leer</h2><ul class="related_post"><li><a href="http://www.damianculotta.com.ar/2008/10/15/restaurar-backups-de-mysql/" title="Restaurar backups de Mysql">Restaurar backups de Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/19/simulando-show-tables-y-describe-de-mysql-en-postgresql/" title="Simulando show tables y describe de Mysql en PostgreSql">Simulando show tables y describe de Mysql en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/08/17/update-con-subselect-en-mysql/" title="Update con Subselect en Mysql">Update con Subselect en Mysql</a></li><li><a href="http://www.damianculotta.com.ar/2009/06/23/restaurar-un-backup-plano-en-postgresql/" title="Restaurar un backup plano en PostgreSql">Restaurar un backup plano en PostgreSql</a></li><li><a href="http://www.damianculotta.com.ar/2009/04/18/como-crear-un-trigger-con-un-definer-especifico-en-mysql/" title="Cómo crear un trigger con un Definer específico en Mysql">Cómo crear un trigger con un Definer específico en Mysql</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.damianculotta.com.ar/2008/08/28/backup-de-bases-de-datos-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

