Autor Beitrag
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 20.09.02 23:22 
Hallo Leute.

Ich möchte an dieser Stelle ein kleines Tutorial schreiben, wie man einen Opensource Interbase 6.01 Server auf einem SuSE Linux 8.0 System installiert, konfiguriert.
Anschließend werde ich beschreiben, wie man die Delphi Komponenten (IBExpress) konfigurieren muss, damit man auf den Server zugreifen kann.
Am Ende des Textes finden sich einige nützliche Links, auf die ich mich hier beziehe.

1. INSTALLATION

Zur Installation des Interbase Servers stehen euch auf der Downloadseite (1) von Borland zwei Versionen zur Verfügung. Dies sind eine Classic-Server Edition und eine Super-Server Edition.

Wenn ihr von Windows aus mit der IBConsole oder dem IBAdmin (2) auf den Server zugreifen wollt, dann müsst (!) Ihr die Super-Server Edition verwenden. Ladet die Datei "InterBaseSS_LI-V6.0-1.i386.rpm" herunter. Loggt Euch als root ein und ladet die Datei für den Super-Server herunter. Öffnet im Anschluss an den Download eine Kommandozeile. Zum installieren müsst ihr im Verzeichniss wo die Datei liegt
ausblenden Quelltext
1:
rpm -I InterBaseSS_LI-V6.0-1.i386.rpm					

eingeben.

Dann wird der Server standartmäßig nach /opt/interbase/ installiert. Kontrolliert am besten nochmal das die Installation in das Verzeichnis stattgefunden hat.

2. KONFIGURATION

Wollt Ihr den Server so einrichten, daß er beim Systemstart automatisch als Service gestartet wird, lest hier weiter, ansonsten geht zum nächsten Punkt.

Den Server als Service zu starten hat den Vorteil, daß ihr Euch am server nicht Einloggen müsst. Der Interbase Server läuft trotzdem. Zur Konfiguration beziehe ich mich hauptsächlich auf die Dokumentation, die man bei (3) herunterladen kann. Erstellt als nächstes eine Gruppe mit dem Namen INTERBASE und einen Benutzer mit dem Namen Interbase (Interbas auf systemen, die nur acht zeichen lange Logins unterstüzen). Vergesst nicht ein Password für den Benutzer zu setzen.

Wechselt nun ins home Verzeichniss des Benutzers, erzeugt dort mit
mkdir bin ein Unterverzeichniss bin. Erzeugt nun einen link auf den ibmgr dorthin. Dies geht mit
ausblenden Quelltext
1:
ln -s /opt/interbase/bin/ibmgr					

Fügt als nächstes den Pfad der installation zum Path des Benutzers. Editiert dazu die Datei .profiles im homeverzeichniss und fügt folgende Zeilen ein
ausblenden Quelltext
1:
2:
PATH=$PATH:/opt/interbase/bin
export PATH

Erstellt nun die Datei gds_hosts_equiv in /etc. Wenn sie schon vorhanden ist, dann überprüft, das folgende Zeilen in der Datei vorhanden sind
ausblenden Quelltext
1:
2:
localhost
+

Überprüft nun auch mit folgendem Kommando, ob der Server auf dem Standartport auf einkommende Verbindungen wartet
ausblenden Quelltext
1:
#grep 3050 /etc/services					

Ihr solltet eine Zeile wie die folgende als Ergebnis erhalten
ausblenden Quelltext
1:
  gds_db   3050/tcp   # InterBase Database Remote Protocol					

Wenn Ihr die Zeile nicht als Ergebnis erhalten habt, könnt Ihr genau diese in die Datei etc/services eintragen und dann habt Ihr die Port Einstellungen erledigt. Wechselt nun in das Verzeichniss /etc/rc.d und erzeugt da eine Datei mit dem Namen ibserver. In diese Date fügt Ihr folgendes ein (ich habe die Vorlage aus dem Operation Guide so modifiziert, das sie auf meinem System läuft):
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
#! /bin/sh
# ibserver script - Start/stop the InterBase daemon

# Set these environment variables if and only if they are not set.
: ${INTERBASE:=/usr/interbase}
: ${ISC_USER:= <tragt hier den DBAdmin ein, meistens SYSDBA>  }
: ${ISC_PASSWORD:=<tragt hier das Passwort des DB-Admins ein, meistens masterkey>}
# WARNING: in a real-world installation, you should not put the
# SYSDBA password in a publicly-readable file. To protect it:
# chmod 700 ibserver; chown root ibserver
#export INTERBASE
#export ISC_USER
#export ISC_PASSWORD

ibserver_start()
{
    # This example assumes the InterBase server is
    # being started as UNIX user 'interbase'.
    # echo $INTERBASE'/bin/ibmgr -start -forever' | su interbase
    su -c $INTERBASE'/bin/ibmgr -start -forever' interbase
}

ibserver_stop()
{
    # No need to su, since $ISC_USER and $ISC_PASSWORD validate us.
    $INTERBASE/bin/ibmgr -shut -password $ISC_PASSWORD
}

case $1 in
'start' ) 
    echo -e 'InterBase Server starting...   c'
    ibserver_start ;;
'start_msg' ) 
    echo -e 'InterBase Server starting...   c' ;;
'stop' )
    echo -e 'InterBase Server stopping...   c'
    ibserver_stop ;;
'stop_msg' ) echo -e 'InterBase Server stopping...   c' ;;

*) echo 'Usage: $0 { start | stop }'; exit 1;;

esac

exit 0

Die Modifikationen habe ich hauptsächlich aus (4).

Anschließend solltet ihr die Zugriffsrechte so setzen, dass nur der Systemadministrator Modifikationen durchführen darf und sie ausführen darf.

#chown ibserver root
#chgrp ibserver root,
#chmod 700 ibserver

Damit der Server automatisch startet müsst ihr nachschauen, welches das Default Runlevel ist. Dies könnt Ihr in folgender Datei tun.

(UUPs, habe ich gerade vergessen und komme gerade nicht an den server. Wird nachgereicht)

Sobald ihr das gemacht habt, müsst Ihr im zugehörigen Verzeichniss /etc/rc.d/rc.<hier die nummer des default runlevels, auf meinem System 5> links auf die Datei ibserver anlegen, damit dieser nach dem inetd dienst startet und vor ihm beendet wird.

Die Startlinks werden durch ein S am anfang des Dateinamens gekennzeichnet. Bei mir startet inetd an Position 21 und ich starte den Interbase server dann an position 22.
Den Link erstellt Ihr mit folgendem Kommando
ausblenden Quelltext
1:
#ln -s /etc/rc.d/ibserver S22ibserver					

Nun schaut Ihr, wann der inetd beendet wird. Links zum Beenden fangen mit einem K an. Bei mir wird der inetd dienst an position 5 beendet, also habe ich folgenden Link erstellt
ausblenden Quelltext
1:
#ln -s /etc/rc.d/ibserver K04ibserver					

Nun startet der dienst autoamtisch beim Systemstart und wird automatisch beendet beim Beenden des Systems.

Damit ihr von aussen auf die Daten zugreiffen könnt, müsst ihr die rechte so einstellen, dass jeder benutzer im /opt/interbase und den unterverzeíchniss dateien ausführen, lesen und schreiben darf. (chmod 777). Nun könnt Ihr auch von aussen auf den Server zugreifen und könnt Datenbanken anlegen, modifizieren, und und und

Legt am besten noch einen neuen DB User an, mit dem Ihr dann auf der DB arbeitet. Dies macht ihr mit dem tool gsec im /bin Verzeichniss.

3. WINDOWS KONFIGURATION

Sobald Ihr den Server erfolgreich eingerichtet habt, könnt Ihr theoretisch alles mit dem Interbase server machen, was er unterstützt. Habt ihr, wie oben beschrieben den SuperServer installiert, dann könnt Ihr euch mit Tools wie der IBConsole oder dem IBAdmin mit dem Server verbinden.
Als Einstellungen für die Verbindung müsst ihr "remote Server" wählen, die IP-Adresse des Linux-PC im Feld Server name und als Network protocol TCP/IP auswählen.
Als Usernamen würde ich nun den namen des ev. neu angeleten benutzers eingeben. So schützt ihr eure Interbase Systemtabellen und habt ansonsten aber dennoch alle rechte.

4. DELPHI

Verwendet am besten die mitgelieferten IBXpress Komponenten, so müsst Ihr beim installieren der Anwendung nur die Datei gds32.dll mitliefern und keine BDE umständlich installieren.
Für die einfache automatische installation der DLL könnt Ihr Euch diesen (5) Eintrag anschauen.
Für die Verbindung benötigt ihr eine Komponente vom Typ TIBDatabase.
Dort gebt ihr für den Server im Einstellungs dialog wieder die Ip-Einstellungen ein und wenn ihr bereits eine Datenbank erstellt habt, könnt ihr den Pfad dorthin angeben und dann mit dem Usernamen und dem Passwort einen Verbindungstest durchführen.
Wenn ihr alles richtig gemacht habt, bekommt ihr eine Bestätigung.


Herzlichen Glückwunsch und viel Spaß mit dem Interbase server

ANHANG A
(1) info.borland.com/dev...nterbase/opensource/
(2) www.sqlly.com
(3) info.borland.com/techpubs/interbase/
(4) community.borland.co...0,1410,27761,00.html
(5) www.delphi-forum.de/viewtopic.php?t=2169

Moderiert von user profile iconjasocul: Link korrigiert.