<?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>GreenSmilies &#187; mysql</title>
	<atom:link href="http://www.greensmilies.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.greensmilies.com</link>
	<description>Die Welt der Smilies ist nicht immer nur gelb!</description>
	<lastBuildDate>Sun, 30 Oct 2011 17:51:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Der Weg nach utf8</title>
		<link>http://www.greensmilies.com/2008/11/12/der-weg-nach-utf8/</link>
		<comments>http://www.greensmilies.com/2008/11/12/der-weg-nach-utf8/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 19:05:52 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Green Smilies intern]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.greensmilies.com/?p=1564</guid>
		<description><![CDATA[Wie letztens geschrieben, hier mein Weg um die Datenbank auf utf8 umzustellen, falls man beim php/mysql Wechsel versehentlich seine Umlaute &#038; Co geschrottet hat. So wie ich, habe ich doch alle Umlaute doppelt utf8 kodiert (siehe Screenshot am Ende). Voraussetzung ist eine Shell und phpMyAdmin. SQL-Profis brauchen letzteres natürlich nicht, aber die haben auch keine [...]]]></description>
			<content:encoded><![CDATA[<p>Wie letztens <a href="http://www.greensmilies.com/2008/11/08/utf8-krampf/" class="liinternal">geschrieben</a>, hier mein Weg um die Datenbank auf <strong>utf8</strong> umzustellen, falls man beim php/mysql Wechsel versehentlich seine Umlaute &#038; Co geschrottet hat. So wie ich, habe ich doch alle Umlaute doppelt utf8 kodiert (siehe Screenshot am Ende). Voraussetzung ist eine Shell und phpMyAdmin. SQL-Profis brauchen letzteres natürlich nicht, aber die haben auch keine utf8-Problemchen.</p>
<ol>
<li>Backup! Backup! Backup!<br />
Am besten gleich eine Kopie mit phpMyAdmin anlegen und diese sichern!</li>
<li>Ich habe zuerst die Kollation der Datenbank auf <strong>utf8_bin</strong> umgestellt.</li>
<li>Dann habe ich über die Shell einen Dump der Datenbank angelegt, wichtig ist hierbei der default charset <strong>latin1</strong> gewesen!:
<pre>mysqldump -u<em>user</em> -p<em>passwort</em> <em>datenbankname</em> <strong>--default-character-set=latin1</strong> > /tmp/<em>dumpname</em></li>
<li>Mit einem Hex-Viewer wie zum Beispiel <strong>xxd</strong> sollte man dann mal einen Blick auf den Dump werfen und sich einen kaputten Umlaut suchen. In meinem Fall belegten die doppelt utf8 kodierten Zeichen 3 bis 4 Bytes statt 2 Bytes.</li>
<li>Nun editiert man mit <strong>vim</strong> den Dump und ändert ganz am Anfang des SQL das "SET NAMES latin1" auf "<strong>SET NAMES utf8</strong>".</li>
<li>In phpMyAdmin sollte man nun die alte Datenbank einfach umbenennen (ist gleich ein Backup), eine neue Datenbank mit dem gleichen Namen anlegen und dann auf der Shell den Dump wieder einlesen:
<pre>mysql -u<em>user</em> -p<em>passwort</em> <em>datenbankname</em> < /tmp/<em>dumpname</em></pre>
</li>
<li>Zu guter Letzt habe ich in Handarbeit via phpMyAdmin sämtliche Kollationen auf utf8_general_ci umgestellt, also bei allen Tabellen und allen Felder!</li>
<li>Nicht zu vergessen ist der Eintrag <strong>DB_CHARSET</strong> in eurer wp-config.php, dort gehört "<strong>utf8</strong>" eingeragen!</li>
</ol>
<p>Was bei mir nicht klappte, war ein Tipp von <a href="http://macx.de/" class="liexternal">David</a> den Dump einfach mit default charset <strong>--default-character-set=utf8</strong> einzulesen, ich glaube das funktioniert nur wenn die eigentlichen Daten eh schon utf8 sind, aber noch in einer Datenbank mit falschen Charset liegen. Darum auch der Hinweis, den Dump mal mit xxd zu betrachten.</p>
<p>Nicht empfehlen kann ich das Vorgehen von <a href="http://www.perun.net/2008/08/22/upgrade-erfolgreich-umlaute-tot/" class="liexternal">Perun</a> oder <a href="http://www.konzentrat.org/wordpress-kollation-umstellung/" class="liexternal">kONZENTRAT.org</a> die Zeichen per Suchen und Ersetzen auszutauschen, da sich die kaputten Zeichen u.U. nicht auf die drei Umlaute und ein scharfes S begrenzen. Ansonsten hat er es wie David mir sagte gemacht und den falschen Charset korrigiert.</p>
<p>Es wird aber trotzdem andere und eventuell auch bessere, einfachere und/oder schnellere Wege geben, was zählt ist aber das Endergebnis! Wie sagt mein Hausarzt immer so schön: "Wer heilt, hat Recht!"</p>
<p><a href="http://www.greensmilies.com/wp-content/uploads/2008/11/utf8.png" class="highslide"><img src="http://www.greensmilies.com/wp-content/uploads/2008/11/utf8-300x177.png" alt="utf8" title="utf8" width="300" height="177" class="size-medium wp-image-1575" /></a></p>
                                <hr /><p style="float:right; font-size: 12px;">&copy; Michael Niedermayr - besuche <a href="http://www.greensmilies.com">GreenSmilies.com</a> f&uuml;r noch mehr Smilies.</p>                        ]]></content:encoded>
			<wfw:commentRss>http://www.greensmilies.com/2008/11/12/der-weg-nach-utf8/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

