Monatsarchiv für Dezember 2011

 
 

Doppelte Einträge in MySQL Tabelle finden

Ich denke der Titel verrät bereits um was es in diesem Artikel geht. Ausgangspunkt ist folgende Tabelle.

CREATE TABLE `xyz` (
    `a` VARCHAR(50) NOT NULL,
    `b` INT(10) NOT NULL DEFAULT '0',
    `c` DATETIME NOT NULL
);

Nun soll die Spalte b einen UNIQUE Key bekommen. Das Problem ist aber, das es in dieser Spalte bereits viele Dopplungen gibt. Um sie zu finden nehme ich folgende Abfrage.

SELECT `b` FROM `xyz` WHERE `b`
IN (
   SELECT `b`
   FROM `xyz`
   GROUP BY `b`
   HAVING Count( 1 ) >1
);

Die Abfrage zeigt mir jetzt alle Einträge der Spalte b die mehr als einmal vorkommen. Jetzt kann man die Einträge entweder manuell bereinigen oder die SELECT Abfrage in eine DELETE Abfrage umbauen. Fertig.

WordPress App jetzt endlich auch für Android Tablets

Lange hab ich auf dieses Update gewartet. Jetzt endlich ist die offizielle App von WordPress auch für Android Tablets optimiert. Die bisherige Version konnte mich auf dem Eee Pad Transformer nicht überzeugen. Nicht nur das Dashboard wirkt durchdacht, sogar das Schreiben eines Artikels macht inzwischen Spaß, da das Textfenster den gesamten Bildschirm füllt. Bis auf einige kleine Schwächen (z.B. Abstürze beim Wechseln des Blogs, das Verschlucken von HTML Tags beim Speichern, ….), entwickeln sich die Apps für Android Tablets in Richtung produktives Arbeiten.

image

Bleibt nur zu hoffen, das neben den Vorreitern wie Google und Adobe jetzt auch weitere Apps (z.B. Piwik, …) endlich für Tablets optimiert werden. Die aktuelle Version kommt per Update oder steht im Android Market kostenlos zum Download zur Verfügung.

Gemeinsame Ordner unter Ubuntu Server 10.04 in VirtualBox einrichten

Dieser Eintrag ist Teil 2 von 2 der Serie Testumgebung mit Virtualbox

Wie ich bereits im vorherigen Artikel dieser Serie berichtet habe, bieten die Gasterweiterungen für VirtualBox Gemeinsame Ordner an. Diese können dann vom Gast einfach eingebunden werden und z.B. wie eine Netzwerkfreigabe verwendet werden.

Um die Gemeinsamen Ordner zu aktivieren, muss in den Einstellungen des Gastsystems – im Bereich Gemeinsame Ordner – ein Ordner hinzugefügt werden. Dieser kann diverse Optionen haben. (nur lesbar, automatisch einbinden, permanent. Siehe Screenshot.)Virtualbox Gemeinsame Ordner

Die Einbindung bei Windowssystemen klappt bei Auswahl des Häkchen “automatisch Einbinden” ohne Zutun. Um diesen Ordner nun auf einem Linux Gast z.B. Ubuntu 10.04 Server einzubinden, muss ein Mountpunkt definiert werden. Dann kann eingebunden werden.

$ mkdir /home/sven/share
$ sudo mount -t vboxsf SharedFolder /home/sven/share

Wenn man nicht den Root User verwendet, sondern der aktuelle Benutzer die Rechte am eingebundenen Ordner haben soll, kann man einfach die Benutzer- und Gruppen ID (uid,gid) in die Mount Optionen einfügen.

$ sudo mount -t vboxsf -o rw,uid=1000,gid=1000 SharedFolder /home/sven/share

Alternativ kann man auch eine Permanente Einbindung machen. Hierzu muss die Datei rc.local bearbeitet werden.

$ sudo nano /etc/rc.local

Sollte darin zuvor keine Änderung gemacht worden sein, sollte sie jetzt so aussehen.

!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
mount -t vboxsf -o rw,uid=1000,gid=1000 SharedFolder /home/sven/share
exit 0

Wichtig! Die Raute in der ersten Zeile muss entfernt werden, so dass nur !/bin/sh -e da steht. Ausserdem muss die uid und gid auf den entsprechenden Benutzer angepasst sein. Der Befehl id zeigt die benötigte Information an.

Beim nächsten Neustart steht dann der Ordner dauerhaft bereit.

VirtualBox Gasterweiterungen auf Ubuntu Server 10.04 installieren

Dieser Eintrag ist Teil 1 von 2 der Serie Testumgebung mit Virtualbox

Zum Testen setze ich in meiner Entwicklungsumgebung unter anderem auch auf Linux-Server als Virtuelle Maschinen. Da ich hier keine grafische Oberfläche wie Gnome oder KDE installiert habe, sind die Gasterweiterungen von VirtualBox eigentlich nicht nötig. Die Gasterweiterungen stellen aber die Funktion “Gemeinsame Ordner …” bereit, die beim Testen einiges vereinfacht.

Einige Bedingungen sollten zunächst erfüllt sein, bevor man mit der Installation beginnen kann.

$ sudo apt-get install dkms build-essential

Im Anschluss sollte das System neu gestartet werden.

Nach dem Neustart muss das ISO Image mit den Gasterweiterungen von VirtualBox geladen werden. Über das Menü “Geräte -> Gasterweiterungen installieren … ” oder der Tastenkombination [HOST] + D ist das schnell erledigt.
Virtualbox Gasterweiterung für Ubuntu 10.04

Auf dem Ubuntu Server kann nun das Medium eingebunden werden.

$ sudo mkdir /media/cdrom
$ sudo mount /dev/cdrom /media/cdrom

Abhängig von der Systemarchitektur (32bit oder 64bit) startet die Installation mit dem Skript:

$ sudo /media/cdrom/VBoxLinuxAdditions.run

Am Ende der Installation erscheint der Fehler “Could not find X.Org or XFree.86 Window System” der auf das Fehlen der grafischen Oberfläche verweist.