Kategorien

Suchen


Aktuelle Artikel

Archiv

Allgemeines

« Vorherige Beiträge

mySQL: root Passwort ändern

Mittwoch, 21.07.2010

Mit folgenden Befehlen können Sie das root Passwort Ihres mySQL Server ändern:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h YourDomain.com password 'new-password'

Beachten Sie dazu auch unsere anderen Artikel:

PHP: Apache2 Version in Variable auslesen

Mittwoch, 21.07.2010

Damit Sie auf einem Unix (Linux) System einfach die aktuelle Version des Apache WebServers herausfinden können, zeigen wir Ihnen ein PHP-Beispiel.

In dem PHP Script wird die Apache-Funktion “apache2ctl” genutzt, die die aktuelle Apache-Version auszulesen. Dieser Befehl wird mithilfe des PHP Befehles “passthru()” direkt an das Linuxsystem weitergegeben.

Hinweis:
Häufig ist auf “öffentlichen” Webservern aus Sicherheitsgründen die Nutzung einiger Befehle gesperrt. Dazu zählt häufig auch der Befehl “passthru()”. Wenn das Script bei Ihnen lokal auf dem Computer also einwadnfrei läuft und auf Ihrem Internetserver keine Daten zurück gibt, liegt diese Befehlssperre vor. Eine Möglichkeit, diese Sperre aufzuheben hat nur Ihr Web-Administrator (oder Provider).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// PHP Version auslesen
ob_start();
passthru("apache2ctl -v");
$ver = ob_get_contents();
if empty($ver) 
  echo "passthru() disabled ?";
ob_end_clean();
 
$a = explode("\n", $ver);
preg_match('/(server version: ){1}(.*)/i', $a[0], $v);
$data[0] = $v[2];
 
preg_match('/(server built:   ){1}(.*)/i', $a[1], $v);
$data[1] = date("d.m.Y H:i:s", strtotime($v[2]));
 
print_r($data);
?>

PHP: Zugriff von Browsern außerhalb eines IP-Subnetzes unterbinden

Montag, 19.07.2010

Mithilfe des folgenden PHP Scripts können Sie Besucher außerhalb des festgelegten IP Bereiches blockieren:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (strncmp("192.168.0", $_SERVER["REMOTE_ADDR"], 9) != 0)
{
  // Block access
  header("HTTP/1.0 403 Forbidden");
  // header('Location: http://www.google.com');
  exit;
} else {
  // Allow access
  echo "Zugriff erlaubt ...";
}
?>

In diesem Beispiel werden alle Besucher, deren IP Adresse nicht mit “192.168.0″ anfängt, blockiert.

Dieser IP Bereich wird nur LAN intern verwendet. Für die Filterung von Besuchern aus dem WAN (Internet) filtern Sie bitte auf die öffentliche IP Adresse Ihrer Webseitenbesucher. Passen Sie dabei auch die Länge der zu vergleichenden Zeichen an (im o.a. Beispiel werden die ersten 9 Zeichen verglichen). Diese können Sie sich mithilfe des folgenden PHP Scripts anzeigen:

1
2
3
<?php
echo $_SERVER["REMOTE_ADDR"];
?>

mySQL: Eindeutige ID (UID) erzeugen

Sonntag, 18.07.2010

Damit Sie in einem SQL Statement eine eindeutige ID (unique ID = UID) nutzen können, steht Ihnen der Befehl “uuid()” zur Verfügung:

SELECT UUID();

Ergebnis:

f15be048-dfb8-102d-b15d-88b2e2560827

Hinweis:
In Verbindung mit einer aktiven Replikation kann diese Funktion derzeit noch nicht genutzt werden.

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:

« Vorheriger Beitrag