Kategorien
Linux

Kubuntu und entfernte X-Sessions

Per Default lauscht bei Ubuntu/Kubuntu der X-Server nicht auf TCP Verbindungen, das kann man recht einfach ändern – wenn man weiss wie 🙂

In der Datei /etc/kde3/kdm/kdmrc wird einfach der Eintrag:
ServerArgsLocal=-nolisten tcp
auskommentiert oder „-nolisten tcp“ entfernt.

Nach dem Neustart des X-Servers klappts dann auch mit X-Windows Fenstern von anderen Rechnern…

Kategorien
Linux

Mysql und die Groß-/Kleinschreibung

Normalerweise sucht Mysql bei einer Suche mit „LIKE ‚%irgendwas%‘ “ ja unabhängig von der Groß-/Kleinschreibung!
Nur leider bei der von mir erstellten Adressdatenbank nicht…

Auf der Suche nach dem Problem bin ich auf folgende Lösung gestossen:
alter table adrdb convert to character set utf8 collate utf8_general_ci;

Das Problem lag darin dass bei einigen Tabellen der Character Set utf8 und collat utf8_bin angelegt wurden. Was man sieht wenn man mittels mysqldump und der Option „–all-databases“ einen Dump in eine Textdatei speichert und dort die genauen Definitionen betrachtet.

Bei mir sah es wie folgt aus:

CREATE TABLE `adrdb` (
`uid` bigint(11) NOT NULL auto_increment,
`firma` varchar(60) collate utf8_bin default NULL,
`titel` char(25) collate utf8_bin default NULL,
`vorname` varchar(35) collate utf8_bin default NULL,
`nachname` varchar(35) collate utf8_bin default NULL,
`strasse` char(55) collate utf8_bin default NULL,
`plz` char(10) collate utf8_bin default NULL,
`ort` char(50) collate utf8_bin default NULL,
`telefon` char(35) collate utf8_bin default NULL,
`fax` char(35) collate utf8_bin default NULL,
`mobil` char(35) collate utf8_bin default NULL,
`email` char(80) collate utf8_bin default NULL,
`webseite` char(80) collate utf8_bin default NULL,
`bemerkung` text collate utf8_bin,
`land` char(3) collate utf8_bin default NULL,
PRIMARY KEY (`uid`),
KEY `vorname` (`vorname`),
KEY `nachname` (`nachname`),
KEY `firma` (`firma`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’Adressdatenbank‘;

Die letzte Zeile ist in dem Fall am wichtigsten, COLLATE=utf8_bin schaltet also auf Binary Modus beim Suchen um. Mit dem oben angegebenen utf8_general_ci wird auf CaseInsensitive geschaltet und somit die Groß-/Kleinschreibung nicht mehr beim Suchen berücksichtigt!

Nach der Umstellung steht in der letzten Zeile einfach folgendes:
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’Adressdatenbank‘;

Da „COLLATE=utf8_bin“ dort fehlt nehme ich an dass die Default Einstellung eigentlich korrekt ist und das Problem beim Importieren der Tabellendaten entstanden ist.

Kategorien
Linux

RAM-Disk anlegen und verwenden

Schneller als in den Hauptspeicher kann man ja wohl nicht schreiben 🙂

Und einfacher als unter Linux kann man ja kaum eine Ram-Disk anlegen:

mount -t tmpfs /dev/shm /mnt -o size=150m

Legt eine 150MB große RAM-Disk an welche unter /mnt ansprechbar ist.

Auf meinem Rechner kann ich innerhalb der RAM-Disk mal eben locker über 600MB/s schreiben/lesen – ideal also um mal eben das eine oder andere zu beschleunigen!

Als Beispiel z.B. der Cache einer Web-Applikation.

Kategorien
Linux

kubuntu von 6.06 auf 7.04 updaten

Meinen PC hab ich ja schon vor einiger Zeit einfach mit dem Aktualisierung-Tool von der Version 6.10 auf 7.04 hochgefahren – hat zwar lange gedauert (an dem Wochenende wollte wohl jeder updaten…) aber ohne Probleme funktioniert!

Ganz so reibungslos sollte es dieses Mal wohl nicht klappen!
Mein Notebook ein MSI S262 bisher mit Kubuntu 6.06 installiert.

In letzter Zeit habe ich es mir angewöhnt vor einer Installation noch einmal eine Liste aller installierten Pakete zu machen – am einfachsten mit:

dpkg -l|awk ‚{print $2}‘ > dateiname

anschließend öffne ich diese Datei mit vi und ersetze alle Zeilenschaltungen durch ein Leerzeichen:

%s/n/ /g

diese Datei kann man wenn was schief geht recht gut zum Nachinstallieren von fehlenden Paketen verwenden, allerdings muss man das eine oder andere Paket vorher noch entfernen. (ein Installationsversuch verrät welche)

Also gleich mal die Datei /etc/apt/sources.list geöffnet und dapper durch feisty ausgetauscht.
Anschließend apt-get update und apt-get dist-upgrade gestartet und erst mal was anderes zum Zeitvertreib gesucht…

Nach ca. einer Stunde waren ein paar Fragen zu beantworten – kennt man ja.
Ein paar Minuten später war die Installation soweit fertig und der Rechner bereit für einen ersten Neustart.

Tja und was soll ich sagen, damit war’s dann auch erstmal erledigt – nichts geht mehr 🙂
Mit dem Boot-Loader Eintrag für Recovery Modus konnte ich dann das System zumindest bis zur Bash hochfahren, Netzwerkverbindung war da – also nicht weiter tragisch.
Die Paketliste von vorhin einfach um „apt-get install “ ergänzt und mit „bash dateiname“ starten, alle nicht installierbaren Pakete nach und nach entfernen bis die Installation durchläuft und noch ein wenig Geduld zeigen, das war’s dann auch schon!

Ein paar Minuten Später startet mein Notebook erneut ohne Probleme bis zum grafischen Login.
Das beste am Ganzen – mit dem neuen Kernel läuft jetzt sogar der eingebaute SD-Card-Reader ohne Probleme und die neue Version von Digikam liest auf Knopfdruck gleich alle Fotos vom Medium ein.

Bis jetzt bin ich von der Aktuellen Kubuntu Version begeistert! Besonders fein finde ich die kleinen Neuerungen wie z.B. die vorbelegung der Taste „Druck“ mit dem Programm ksnapshot. Da spar ich mir jetzt doch tatsächlich ein Alt+F2 ksnapshot…

Kategorien
Linux

mysql, php und die Umlaute

Folgendes Problem: auf einem älteren Rechner ist SuSE Linux 9.1 installiert und die ganzen Tabellen mit „CHARSET=latin1“ angelegt worden (bei SuSE 9.1 default) – der Zugriff erfolgt aber meist über ein PHP Script von einem aktuellen Ubuntu System welches UTF-8 verwendet. Die Ausgabe des PHP Scripts enthält aber leider statt der Umlaute einfach immer nur ein schwarzes kästchen mit einem „?“ drinnen…

Mein erster Gedanke war einfach mal die MySQL Version am SuSE Rechner aktualisieren, also gleich mal Update auf 5.0.21 drauf gespielt! Hat aber leider nicht wirklich was bewirkt.

Den Zusammenhang mit dem CHARSET habe ich leider erst nach etwas Internet-Recherche herausgefunden – eine Möglichkeit wäre jetzt einen Dump der Tabelle anlegen und dann von latin1 nach utf-8 konvertieren, anschliessend müsste man das ganze einfach wieder in die Datenbank einspielen. Das erschien mir allerdings ein wenig zu umständlich!

Nach längerer Suche bin ich dann auf folgende recht einfach Lösung gestossen:

Einfach nach dem die Verbindung zur Datenbank hergestellt wurde folgenden Befehl absetzen:
mysql_query(„SET NAMES utf8“);

Und schon bringen alle weiteren Selects die Umlaute passend retour!