Downloads

Kategorien

Suchen


Aktuelle Artikel

Archiv

Archiv für den Juli 2010

« Vorherige Beiträge Nächste Beiträge »

mySQL: IP Adresse in Integer umrechnen (und zurück)

Samstag, 17.07.2010

Netzwerkadressen werden üblicherweise als String (vier punktgetrennte Oktette) übergeben.
Um diesen Text in eine Zahl (integer) umzurechnen, nutzen Sie die Funktion “inet_aton()”.
Natürlich kann diese Funktion auch nur Teil-IP-Adresse umwandeln.
Das folgende Beispiel zeigt die Anwendung:

SELECT INET_ATON('192.168.0.200');

Ergebnis:

3232235720

Die Zahl berechnet sich aus folgender Formel:

192×2563 + 168×2562 + 0×256 + 200 = 3232235720

Um diese Zahl wieder in eine gültige IP Adresse zu konvertieren, zeigen wir im folgenden Beispiel
die Anwendung des mySQL Befehls “inet_ntoa()”:

SELECT INET_NTOA(3232235720);

Ergebnis:

192.168.0.200

mySQL: Aktuelle mySQL Version auslesen

Freitag, 16.07.2010

Benutzen Sie direkt in Ihrem SQL Statement die Funktion “version()”:

SELECT VERSION();

Ergebnis (Beispiel):

5.1.5-alpha-standard

Hinweis:
Endet die angezeigte Version mit dem Text “-log”, ist das Loggen (Logging) auf dem Server aktiviert.

Oracle: SQL Statements optimieren

Freitag, 16.07.2010

Mit der Hilfe des folgenden Oracle SQL Befehles können Sie für alle SQL Befehle im SQL Cache herausfinden, wie häufig diese ausgeführt wurden und wieviele Blockzugriffe für die Verarbeitung notwenig waren.

SELECT 
  to_char(executions,'999G999G990') "executions", 
  to_char(buffer_gets,'999G999G990') "gets",
  to_char(buffer_gets/greatest(nvl(executions,1),1),'999G999G990') "gets je exec", 
  to_char(round(100*(1-(disk_reads/greatest(nvl(buffer_gets,1),1))),2),'990D00') Trefferquote, 
  sql_text
FROM v$sql
WHERE buffer_gets > 1000
ORDER BY buffer_gets DESC;

Zusätzlich wird Ihnen die “Trefferquote” des jeweiligen Befehls im Datencache angezeigt.

Durch diese Abfrage können Sie sehr schnell schlecht optimierte SQL-Befehle herausfinden.

Eine Trefferquote < 70% deutet meist darauf hin, dass in dem Fall eine Tabelle komplett ohne Index-Zugriffe gelesen wurde. Zur Optimierung sollten Sie dann einen weiteren (oder überhaupt einen) Index hinzuzufügen. Der Befehl kann danach die Daten schneller lesen.

Diese Statistik zeigt nur die Befehle, welche sich aktuell im SQL-Cache befinden. Um ein umfassendes Bild der auffälligen SQL Befehle zu erhalten sollten Sie den o.a. SQL Befehl also mehrfach täglich ausführen. Das Intervall hängt dabei stark von der Nutzung Ihrer Oracle Datenbank ab. Auch ein Aufruf zu unterschiedlichen Zeiten gibt aufschlußreiche Informationen an Sie weiter.

Die Einschränkung “buffer_gets > 1000″ hilft, die Ergebnismenge zu reduzieren. Durch diese Auswahl werden nur die relevanten Befehle angezeigt. Natürlich können Sie auch diesen Parameter frei anpassen.

VirtualMin: .. übersteigt das globale Größenlimit (.. Bytes) des Servers

Donnerstag, 15.07.2010

Wenn Sie beim Senden einer (größeren) E-Mail von Ihrem Mailprogramm (E-Mail Client) die folgende Fehlermeldung erhalten, hilft Ihnen dieser Artikel.

Lösung (VirtualMin / WebMin)

Öffnen Sie Ihre VirtualMin Oberfläche und navigieren Sie zu folgender Option:

Setzen Sie die Option “Max size of a message” auf den benötigten Wert. Standard ist “10240000″ (ca. 10 MB).

Anschließend sollten Sie den Postfixserver neu starten. Klicken Sie dafür in der Hauptübersicht der Postfix Einstellungen (direkt nach dem Klick auf den Menüeintrag “Postfix Mail Server” zu sehen) auf den Button “Stop Postfix” am Ende der Seite. Danach starten Sie den Server sofort wieder durch Anklicken des Buttons “Start Postfix”.

Lösung (direkt in der “postfix.conf”)

Öffnen Sie die Konfigurationsdatei Ihres Postfix Servers und setzen Sie die Option “message_size_limit” manuell auf den gewünschten Wert.

Danach sollten Sie den Postfix Server mit folgendem Befehl neu starten:

/etc/init.d/postfix restart

mySQL: Aktuell angemeldeten Benutzer anzeigen

Donnerstag, 15.07.2010

Um innerhalb eines mySQL Befehles den aktuell angemeldeten Benutzer zu erhalten, nutzen Sie einfach die Funktion “current_user()”. Das folgende, einfache Beispiel zeigt die Anwendung:

SELECT CURRENT_USER();

Gleichzeitig wird der Hostname ausgegeben.
Ergebnis (Beispiel):

test@localhost

Eine weitere Funktion ist “user()”. Die Funktion liefert Ihnen den Benutzernamen, welchen Sie beim Herstellen der Verbindung zu Ihrem mySQL Server eingegeben haben. Zusätzlich wird der Clienthost ausgegeben, über den die Verbindung hergestellt wurde. Der Wert kann sich von dem von der o.a. Funktion “current_user()” unterscheiden.

SELECT USER();

Um aus der Funktion “user()” nur den aktuellen Benutzernamen zu erhalten, nutzen Sie folgenden SQL Befehl:

SELECT SUBSTRING_INDEX(USER(),'@',1);

Windows: Netzwerkbrücke lässt sich nicht löschen

Mittwoch, 14.07.2010

Wenn sich eine Netzwerkbrücke aus Ihren Verbindungen nicht mehr löschen lassen möchte, verhilft Ihnen dieser Artikel evtl. zur Lösung.

Eine Netzwerkbrücke entsteht durch das manuelle Überbrücken zweier vorhandener Netzwerkkarten auf Ihrem Computer.

Sollte beim Löschen einer Netzwerkbrücke die Fehlermeldung

Ein unerwarteter Fehler ist beim Konfigurieren der Netzwerkbrücke aufgetreten

auftreten und Sie keine Möglichkeit mehr für Einstellungen haben, folgen Sie der kurzen Anleitung:

Windows: Bootfähige DVD kopieren (ISO Image erstellen)

Mittwoch, 14.07.2010

Wenn Sie ein Backup von Ihrer Windows7 DVD machen möchten, hilft Ihnen diese Anleitung.

Hinweis:
Nach § 53 Urhebergesetz dürfen Sie nur privat und ausschließlich zum eigenen privaten Gebrauch von Ihrer originalen Microsoft Windows 7 DVD eine Kopie anfertigen. Diese darf dann ausschließlich von Ihnen genutzt und sollte wie die originale DVD behandelt werden. Eine Kopie darf ausschließlich zur Sicherung der Funktionsfähigkeit der Original-DVD nutzen. In einem richtungsweisenden Urteil (BGH GRUR 1978, 474, 476) hat der BGH entschieden, dass für den privaten Gebrauch max. 7 Kopien angefertigt werden können.

Diese Auskunft ist nicht verbindlich. Bitte informieren Sie sich vor der Anfertigung einer Kopie über die für Sie geltenden Bestimmungen und die aktuelle Rechtslage.

Mit diesem Artikel soll keine Möglichkeit dokumentiert werden, einen technischen Schutz gegen das Kopieren zu umgehen (§95a Abs 1 Urhebergesetz). Es werden normale Kopier- und Brennoptionen unter Windows genutzt. Sollte das Kopieren oder Brennen fehlschlagen oder sollten Kopierschutzmaßnahmen die Möglichkeit des Kopierens behindern, ist der Vorgang abzubrechen.

Für die meisten Schritte benötigen Sie Administrationsrechte auf Ihrem Computer.

Das benötigte Programm “oscdimg.exe” wird von Microsoft angeboten.

Weitere Optionen und Informationen zu “oscdimg.exe” erhalten sie bei Microsoft:
http://technet.microsoft.com/en-us/library/cc749036%28WS.10%29.aspx

Download von “oscdimg.exe” u.a. auch von MicroSoft:
oscdimg.exe Download

SQLite: Datenbank erstellen, Tabellen erstellen, Daten einfügen & Daten abfragen

Dienstag, 13.07.2010

Um eine kurze Einführung in die SQLite Datenbank zu bekommen, hilft Ihnen folgendes PHP-Script:

Das Beispiel zeigt Ihnen, wie Sie zuerst eine Datenbankverbindung aufbauen (dadurch automatisch auch die Datenbankdatei erstellen) und anschließend zwei Tabellen erstellen. Danach wird jeweils ein Datensatz in eine Tabelle eingefügt und im letzten Schritt wieder zusammen ausgelesen (joind).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
// Datenbank anlegen (Dateiname: "test.dat")
$db = sqlite_open("test.dat", 0660, $error);
 
// Die Tabellen anlegen: "kunde" und "domain"
sqlite_query($db, 'CREATE TABLE kunde (id integer PRIMARY KEY, code varchar(10))');
sqlite_query($db, 'CREATE TABLE domain (id integer, kunde integer, name varchar(10))');
 
// Datensätze einfügen
sqlite_query($db, "INSERT INTO kunde (code) VALUES ('fnord')");
sqlite_query($db, "INSERT INTO domain (id,kunde,name) VALUES (1, 1, 'www.webseite.de')");
 
// Daten verbinden und abfragen
$res = sqlite_query($db, 'select * from kunde k left join domain d on d.kunde = k.id');
$res = sqlite_fetch_all($res, SQLITE_ASSOC);
 
// Ergebnis anzeigen
print_r($res);
?>

In unserem Beispiel hat die Datenbank den Dateinamen “test.dat”. In der Wahl des Dateinamens sind Sie nur an die Restriktionen Ihres Betriebssystems gebunden. Häufig wird jedoch auch der Suffix “.sqlite” genutzt. (Suffix = Dateiendung)

Um die auf Ihrem System aktuell genutzte Version von SQLite auszulesen, nutzen Sie folgenden Befehl:

echo sqlite_libversion();

Wenn Sie die derzeit eingestellte Codierung herausfinden möchten:

echo sqlite_libencoding();

WordPress: “Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen”

Dienstag, 13.07.2010

Nach dem Kopieren oder Update Ihrer WordPress (WP) Installation erhalten Sie eine der beiden folgenden Meldungen nach der Anmeldung im Backend (wp-admin):

Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen.
Sie haben nicht ausreichend Rechte, um auf diese Seite zuzugreifen.

Diese Fehlermeldung zeigt an, dass das WP Backend (Adminbereich) Ihre Anmeldung nicht richtig zuordnen kann. Die Gründe für diese Sperre können vielfältig sein. In der folgenden Übersicht möchten wir Ihnen die Lösung für die häufigsten Sperren zeigen:

Versuchen Sie, Ihre Datenbank durch das “force-upgrade.php” Script zu aktualisieren. Dafür wird die Datei einfach in das Hauptverzeichnis Ihres Webservers kopiert und dann per Browser aufgerufen. Anschließend sollte die Datei dringend wieder gelöscht werden – nur dann kann niemand anderes ebenfalls diese Aktion ausführen. Dieser Schritt sollte fast alle vorhandenen Datenbankprobleme beseitigen. Zudem ist diese Methode wesentlich effizienter und sicherer als das manuelle Zurücksetzen der Versionsnummer / Versionsinformationen in der Datenbank.

Überprüfen Sie, ob die Zeile

require_once(ABSPATH . 'wp-settings.php');

ganz unten steht. Wichtig ist auch, dass die Information

define('SECRET_KEY', 'xyz...abc');

(logischerweise) oberhalb der Zeile stehen.

Es ist nicht ausreichend, die Datei “wp-config.php” anzupassen und in der Datenbank den Tabellenprefix zu ändern. In der WordPress-Datenbank sind Datensätze gespeichert, welche den alten (originalen) Tabellenpräfix darstellen. Diese Einträge müssen also ebenfalls abgepasst werden. Bei normalen Installationen von WordPress sind die folgenden Befehle für die Tabellen “wp_options” und “wp_usermeta” ausreichend:

1
2
UPDATE neuesPrefix_options SET option_name = REPLACE(option_name, 'altesPrefix_', 'neuesPrefix_');
UPDATE neuesPrefix_usermeta SET meta_key = REPLACE(meta_key, 'altesPrefix_', 'neuesPrefix_');

Bei Standardinstallationen sollten keine weiteren Einträge zum Prefix vorhanden sein. Sollten Sie jedoch weitere Datensätze finden, ändern Sie diese entsprechend ab und schreiben Sie uns gerne einen Kommentar zu diesem Artikel. Wir werden Ihre Hilfe dann für die nächsten Besucher einarbeiten.

Sollte die Einstellung / Option “prefix_user_roles” verändert ist. Die Details dieser Option werden in einem sog. “serialisiertes Array” abgelegt. Dabei kann es scheinbar passieren, dass sich die einzelnen Informationen (Daten) so verändern, dass PHP das richtige Array mit den Einzeldaten nicht mehr richtig entschlüsseln kann. Dadurch hat Ihr WordPress dann natürlich keine Möglichkeit mehr, auf diese Einstellungen zuzugreifen. Die Folge ist, dass (sicherheitshalber) alle Benutzer ausgesperrt sind.
Sie können durch einen einfache PHP-Datei schnell prüfen, ob dieses Problem bei Ihnen zutrifft:

Das kurze PHP-Script prüft, ob die Option “user_roles” bei Ihrer WordPress richtig gelesen werden kann. Sollte dabei irgendein Problem auftreten (Sie erhalten die Anzeige “Die Option ‘xyz_user_roles’ ist defekt.”), sollten Sie sicherheitshalber die gesamte Option neu setzen. Zwar gehen Ihnen dadurch alte Einstellungen verloren und müssen dann neu gesetzt werden, aber solange Sie Ihre Benutzerberechtigungen nicht verändert haben, sollte es keine Probleme geben.
Sie können die einzelnen Werte entweder direkt durch phpMyAdmin setzen oder Sie nutzen das folgende Script:

1
2
3
4
5
6
<?php
$val = 'a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:54:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}';
include("wp-config.php");
global $wpdb;
set_option($wpdb->prefix."user_roles", $val);
?>

Den Wert noch einmal als reinen String (Zeichenkette) für die direkte phpMyAdmin Eingabe. Der folgende Text ist eine Zeile:

a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:54:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}

PIN ändern beim Nokia 5230

Dienstag, 13.07.2010

Da es unter dem Nokia 5230 scheinbar keine Möglichkeit gibt um den PIN-Code direkt über die Oberfläche zu ändern müssen Sie folgenden Systembefehl nutzen (per Tastaturfeld eingeben).

**04*[AlterPIN]*[NeuerPIN]*[NeuerPIN]#

Ersetzen Sie dabei die Platzhalter “[AlterPIN]” bzw. “[NeuerPIN]” mit Ihren Werten.

« Vorheriger Beitrag Nächster Beitrag »