<?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>evølutiøn-515.net &#187; Datenbanken</title>
	<atom:link href="http://blog.evolution515.net/article/category/coding/datenbanken/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.evolution515.net</link>
	<description>Chaos ist nur eine andere Bezeichung für steigende Komplexität.</description>
	<lastBuildDate>Wed, 03 Jun 2009 22:55:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Resetting the MySQL root password…</title>
		<link>http://blog.evolution515.net/article/resetting-mysql-root-password/</link>
		<comments>http://blog.evolution515.net/article/resetting-mysql-root-password/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 12:00:48 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=259</guid>
		<description><![CDATA[A little snippet you may need from time to time  
$ /etc/init.d/mysql stop
$ killall mysqld; sleep 5; killall -9 mysqld
$ sudo /usr/bin/mysqld_safe &#8211;skip-grant-tables &#38;amp;
$ mysql
mysql&#62; USE mysql;
mysql&#62; UPDATE user SET Password=PASSWORD&#40;&#8216;myNewPAssword&#8217;&#41; WHERE Host=&#8216;localhost&#8217; AND User=&#8216;root&#8217;;
mysql&#62; exit;
$ /etc/init.d/mysql stop # &#40;no &#8216;restart&#8217; here or mysql may reload without grant-tables!&#41;
$ /etc/init.d/mysql start
]]></description>
			<content:encoded><![CDATA[<p>A little snippet you may need from time to time <img src='http://blog.evolution515.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="dean_ch" style="white-space: wrap;">$ /etc/init.d/mysql stop<br />
$ <span class="kw2">killall</span> mysqld; <span class="kw2">sleep</span> <span class="nu0">5</span>; <span class="kw2">killall</span> <span class="nu0">-9</span> mysqld<br />
$ <span class="kw2">sudo</span> /usr/bin/mysqld_safe &#8211;skip-grant-tables &amp;amp;<br />
$ mysql<br />
mysql&gt; USE mysql;<br />
mysql&gt; UPDATE user SET <span class="re2">Password=</span>PASSWORD<span class="br0">&#40;</span><span class="st0">&#8216;myNewPAssword&#8217;</span><span class="br0">&#41;</span> WHERE <span class="re2">Host=</span><span class="st0">&#8216;localhost&#8217;</span> AND <span class="re2">User=</span><span class="st0">&#8216;root&#8217;</span>;<br />
mysql&gt; <span class="kw3">exit</span>;<br />
$ /etc/init.d/mysql stop <span class="re3"># <span class="br0">&#40;</span>no </span><span class="st0">&#8216;restart&#8217;</span> here or mysql may reload without grant-tables!<span class="br0">&#41;</span><br />
$ /etc/init.d/mysql start</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/resetting-mysql-root-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Little bash snippet to kill locking queries from MySQL</title>
		<link>http://blog.evolution515.net/article/little-bash-snippet-to-kill-locking-queries-from-mysql/</link>
		<comments>http://blog.evolution515.net/article/little-bash-snippet-to-kill-locking-queries-from-mysql/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 16:44:14 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[database locks]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[slow queries]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/?p=301</guid>
		<description><![CDATA[I just tell you: optimize your tables! I will not give anymore support for bad code, stupid database layout and i am not going to debug your messy code. If you don&#8217;t get the introductino chapters of MySQL – stay away from me! Yep, it was just one of these days…
#!/bin/bash
echo &#34;Killing MySQL Queries&#8230;&#34;
MYSQL=&#34;$(which mysql)&#34;
MyUSER=&#34;username&#34;
MyPASS=&#34;password&#34;
for [...]]]></description>
			<content:encoded><![CDATA[<p>I just tell you: optimize your tables! I will not give anymore support for bad code, stupid database layout and i am not going to debug your messy code. If you don&#8217;t get the introductino chapters of MySQL – stay away from me! Yep, it was just one of these days…</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re3">#!/bin/bash</span><br />
<span class="kw3">echo</span> <span class="st0">&quot;Killing MySQL Queries&#8230;&quot;</span><br />
<span class="re2">MYSQL=</span><span class="st0">&quot;$(which mysql)&quot;</span><br />
<span class="re2">MyUSER=</span><span class="st0">&quot;username&quot;</span><br />
<span class="re2">MyPASS=</span><span class="st0">&quot;password&quot;</span></p>
<p><span class="kw1">for</span> pid <span class="kw1">in</span> `mysqladmin proc &nbsp;-u<span class="re1">$MyUSER</span> -p<span class="re1">$MyPASS</span> | <span class="kw2">grep</span> -i Query &nbsp;| <span class="kw2">grep</span> -i lock|awk <span class="st0">&#8216;{ print $2;}&#8217;</span>`<br />
<span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">query=</span><span class="st0">&quot;KILL $pid;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;&gt; $query&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$MYSQL</span> -u<span class="re1">$MyUSER</span> &nbsp;-p<span class="re1">$MyPASS</span> -e <span class="st0">&quot;$query&quot;</span><br />
<span class="kw1">done</span>;</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/little-bash-snippet-to-kill-locking-queries-from-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup remotely via Perl</title>
		<link>http://blog.evolution515.net/article/backup-remotely-via-perl/</link>
		<comments>http://blog.evolution515.net/article/backup-remotely-via-perl/#comments</comments>
		<pubDate>Tue, 29 May 2007 08:37:08 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/backup-remotely-via-perl/</guid>
		<description><![CDATA[Ok, i guess you love that cheap servers only with FTP and HTTP, and minimal PHP4-Timeout and lame CGI and no real possibility but to do a good backup job. Well, Perl was once a dominant language and can do much for you.

The benefits of following backup solutions are as follows:


Backup is done via calling [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, i guess you love that cheap servers only with FTP and HTTP, and minimal PHP4-Timeout and lame CGI and no real possibility but to do a good backup job. Well, Perl was once a dominant language and can do much for you.<br />
<strong><br />
The benefits of following backup solutions are as follows:<br />
</strong></p>
<ul>
<li>Backup is done via calling an URL 
    </li>
<li>that invokes the <em>mysqldump </em>utility to backup your database to a local director, that is preferable outside the webroot
    </li>
<li>the data is then gzipped</li>
<li>old backups are automatically deleted</li>
<li>and then backed up via FTP to another server
    </li>
<li>and while a second server gets the backup it is more secure than having all on a single server</li>
</ul>
<p>Put this in you <em>cgi-bin</em> folder and remotely call it via CURL or test it via the browser. Don&#8217;t forget tot set <strong><em>chmod </em><em>755</em> </strong>for the files! If you backup to a directory in the webroot don&#8217;t forget to protect that directory by e.g. setting a up an .htacess-file!</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#!/usr/bin/perl -w</span></p>
<p><span class="kw2">use</span> CGI;<br />
<span class="kw2">use</span> POSIX <a href="http://perldoc.perl.org/functions/qw.html"><span class="kw3">qw</span></a><span class="br0">&#40;</span>strftime<span class="br0">&#41;</span>;<br />
<span class="kw2">use</span> Time::<span class="me2">Local</span>;</p>
<p><span class="re0">$query</span> &nbsp; &nbsp;= <span class="kw2">new</span> CGI<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$file</span> &nbsp; &nbsp; = <span class="re0">$query</span>-&gt;<span class="me1">param</span><span class="br0">&#40;</span><span class="st0">&#8216;file&#8217;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$filename</span> = <span class="re0">$query</span>-&gt;<span class="me1">param</span><span class="br0">&#40;</span><span class="st0">&#8216;filename&#8217;</span><span class="br0">&#41;</span>;</p>
<p>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;Content-Type: text/plain<span class="es0">\n</span><span class="es0">\n</span>&quot;</span>;<br />
<span class="co1"># print &quot;Content-type: application/octet-stream\n&quot;;</span><br />
<span class="co1"># print &quot;Content-Disposition: attachment; filename=&quot;.$filename.&quot;\n&quot;;</span><br />
<span class="co1"># print &quot;Pragma: no-cache\n&quot;;</span><br />
<span class="co1"># print &quot;bash &quot;.$file;</span></p>
<p><span class="kw2">sub</span> backupMysql<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$host</span><span class="br0">&#41;</span> &nbsp; &nbsp; = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$username</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$password</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$database</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$title</span><span class="br0">&#41;</span> = <span class="re0">$_</span><span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span>;</p>
<p>&nbsp; &nbsp; <span class="re0">$time</span> = <a href="http://perldoc.perl.org/functions/time.html"><span class="kw3">time</span></a>;<br />
&nbsp; &nbsp; <span class="re0">$filename</span> = <span class="re0">$title</span>.<span class="st0">&quot;-&quot;</span>.<span class="re0">$database</span>.<span class="st0">&quot;-&quot;</span>.strftime<span class="br0">&#40;</span><span class="st0">&quot;%Y%m%d-%H%S&quot;</span>, <a href="http://perldoc.perl.org/functions/localtime.html"><span class="kw3">localtime</span></a><span class="br0">&#40;</span><span class="re0">$time</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;Backup of <span class="es0">\&quot;</span>&quot;</span>.<span class="re0">$title</span>.<span class="st0">&quot;<span class="es0">\&quot;</span> (&quot;</span>.<span class="re0">$database</span>.<span class="st0">&quot;)&#8230;&quot;</span>;<br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a> <span class="st0">&quot;mysqldump -e &#8211;add-drop-table &#8211;add-locks &#8211;allow-keywords -h&quot;</span>.<span class="re0">$host</span>.<span class="st0">&quot; -u&quot;</span>.<span class="re0">$username</span>.<span class="st0">&quot; -p&quot;</span>.<span class="re0">$password</span>.<span class="st0">&quot; &quot;</span>.<span class="re0">$database</span>.<span class="st0">&quot; &gt; ../../backup/&quot;</span>.<span class="re0">$filename</span>.<span class="st0">&quot;.sql&quot;</span>;<br />
&nbsp; &nbsp; <span class="co1"># print &quot;GZip &quot;.$filename.&quot;&#8230;\n&quot;;</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a> <span class="st0">&quot;gzip ../../backup/&quot;</span>.<span class="re0">$filename</span>.<span class="st0">&quot;.sql&quot;</span>;<br />
&nbsp; &nbsp; <span class="co1"># print &quot;Unlink &quot;.$filename.&quot;.sql&#8230;\n&quot;;</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/unlink.html"><span class="kw3">unlink</span></a> <span class="st0">&quot;../../backup/&quot;</span>.<span class="re0">$filename</span>.<span class="st0">&quot;.sql&quot;</span>;<br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;done.<span class="es0">\n</span>&quot;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="co1"># Delete previous backups</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span>-d <span class="st0">&quot;../backup/&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$where</span> = <span class="st0">&quot;../backup/&quot;</span>;<br />
&nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a><span class="br0">&#40;</span><span class="re0">$next</span> = &lt;<span class="re0">$where</span>/*.sql.gz&gt;<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/unlink.html"><span class="kw3">unlink</span></a><span class="br0">&#40;</span><span class="re0">$next</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p>
backupMysql<span class="br0">&#40;</span><span class="st0">&quot;&lt;em&gt;host&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;username&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;password&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;database&lt;/em&gt;&quot;</span>, <span class="st0">&quot;&lt;em&gt;mybackupname&lt;/em&gt;&quot;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;</p></div>
<p>Optional .htaccess-File:</p>
<div class="dean_ch" style="white-space: wrap;">&lt;Files ~ <span class="st0">&quot;.*(sql|gz|tar)&quot;</span>&gt;<br />
&nbsp; &nbsp; <span class="kw1">Deny</span> <span class="kw1">from</span> <span class="kw1">all</span><br />
&lt;/Files&gt;<br />
&nbsp;</div>
<p>
Then call the URL by cronjob:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="re3">#!/bin/sh</span></p>
<p>
<span class="re2">remoteAddress=</span><span class="st0">&quot;&lt;em&gt;ftp://user@yourftp.com&lt;/em&gt; -p &lt;em&gt;password&lt;/em&gt;&quot;</span><br />
<span class="re2">localAddress=</span><span class="st0">&quot;&lt;em&gt;/home/Backup/mybackupname&lt;/em&gt;&quot;</span></p>
<p><span class="re2">timeThreshold=</span><span class="nu0">15</span><br />
<span class="re2">mirrordirOptions=</span><span class="st0">&quot;-v &#8211;keep-files &nbsp;&#8211;no-chown &#8211;no-chmod &nbsp;&#8211;num-backups 30 &#8211;mtime-threshold $timeThreshold &quot;</span></p>
<p><span class="kw3">echo</span> <span class="st0">&quot;Backup to $localAddress &#8212; `date +&quot;</span>%a, %C.%B %Y<span class="st0">&quot;`&quot;</span><br />
<span class="kw3">echo</span> -n <span class="st0">&quot;[`date +%H:%M:%S`] Killing runnung instances of mirrordir&#8230;&quot;</span></p>
<p>/usr/bin/<span class="kw2">killall</span> <span class="nu0">-9</span> mirrordir &amp;amp;<span class="nu0">2</span>&gt;<span class="nu0">1</span> &gt; /dev/null<br />
<span class="kw3">echo</span> <span class="st0">&quot;done.&quot;</span></p>
<p><span class="kw2">mkdir</span> -p <span class="re1">$localAddress</span>/htdocs &gt; /dev/null</p>
<p><span class="kw3">echo</span> &nbsp;<span class="st0">&quot;[`date +%H:%M:%S`] Backup of relevant databases&#8230;&quot;</span><br />
curl http://www.yourdomain.com/cgi-bin/backup/mysql.cgi<br />
<span class="kw3">echo</span> <span class="st0">&quot;done.&quot;</span></p>
<p><span class="kw3">echo</span> -n <span class="st0">&quot;[`date +%H:%M:%S`] Backup of remote FTP&#8230;&quot;</span><br />
/usr/bin/mirrordir <span class="re1">$mirrordirOptions</span> <span class="re1">$remoteAddress</span> <span class="re1">$localAddress</span>/htdocs<br />
<span class="kw3">echo</span> <span class="st0">&quot;done.&quot;</span></p>
<p><span class="kw3">echo</span> <span class="st0">&quot;[`date +%H:%M:%S`] Finished.&quot;</span><br />
&nbsp;</div>
<p>If you don&#8217;t have <em>mirrordir </em>or <em>curl </em>install it via <strong>aptitude install mirrordir curl on your </strong>debian box.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/backup-remotely-via-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CouchDB &#8211; Machen Sie sich es erst einmal gem&#252;tlich!</title>
		<link>http://blog.evolution515.net/article/couchdb-machen-sie-sich-es-erst-einmal-gemutlich/</link>
		<comments>http://blog.evolution515.net/article/couchdb-machen-sie-sich-es-erst-einmal-gemutlich/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 13:34:43 +0000</pubDate>
		<dc:creator>Blu:RayNe</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Datenbanken]]></category>

		<guid isPermaLink="false">http://blog.evolution515.net/article/couchdb-machen-sie-sich-es-erst-einmal-gemutlich/</guid>
		<description><![CDATA[CouchDB bietet eine RESTful Datenbank, die &#252;ber HTTP angesprochen werden kann. D.h. man erh&#228;lt mit Anfragen wie GET, PUT, POST und DELETE eine einfache M&#246;glichkeit eine Datenbank anzusprechen.  
Herausragend ist hierbei nat&#252;rlich die Einfachheit. 
Zwar vermisse ich XPath- oder XQuery-&#228;hnlich Anfragen, daf&#252;r bietet aber eine CouchDB eine SQL-like Syntax.  Insgesamt kann gesagt werden, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://couchdb.com/">CouchDB</a> bietet eine RESTful Datenbank, die &uuml;ber HTTP angesprochen werden kann. D.h. man erh&auml;lt mit Anfragen wie GET, PUT, POST und DELETE eine einfache M&ouml;glichkeit eine Datenbank anzusprechen.  </p>
<p>Herausragend ist hierbei nat&uuml;rlich die Einfachheit. </p>
<p>Zwar vermisse ich XPath- oder XQuery-&auml;hnlich Anfragen, daf&uuml;r bietet aber eine CouchDB eine SQL-like Syntax.  Insgesamt kann gesagt werden, dass sich die Datenbank in Zukunft vielleicht zu einer erst zu nehmenden Alternative f&uuml;r LDAP  herauskristallisiert.</p>
<p>Anwendungszwecke sehe ich als <em>Authentifizierungs-Datenbank</em>, wohl aber auch als <em>Dokumenten-Management</em> oder <em>-Storage</em> (inkl. Revision Control), sowie als generelle Ablage f&uuml;r Office-relevante Dinge wie<em> E-Mails, Kontakte</em> usw. (obwohl ja da CalDAV da auch schon ein netter Ansatz ist).   </p>
<p>Eine Einf&uuml;hrung in CouchDB in PHP gibt es <a href="http://www.couchdbwiki.com/index.php?title=CouchDb_PHP_Hello_World_Tutorial">hier</a>.  </p>
<p>Die Frage bleibt nur, warum wieder mal alles via HTTP zu funktionieren hat, inwieweit die Sicherheit ber&uuml;cksichtigt wurde, und inwiefern die Entwickler versuchen wollen die Performance zu steigern.  Zu mindestens ein sehr interessantes Projekt.</p>
<p>
<strong>Kommentar: </strong>Tja, und wann schafft man es endlich einen gemeinsamen OS-Standard f&uuml;r E-Mail, Kalender, Kontakte usw. zu schaffen? Ich will auf Mozilla Thunderbird, Lightning und CouchDB in Zukunft hoffen&hellip;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.evolution515.net/article/couchdb-machen-sie-sich-es-erst-einmal-gemutlich/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
