GDS32 gelöst, jetzt username not defined

Fragen und Problemen zur Inbetriebnahme, Konfiguration und Wartung von AvERP und der Datenbank

Moderator: SYNERPY

Antworten
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Und hier die versprochene Antwort zur AverpConnect: es muss die IP des Servers angegeben werden nicht die 127.0.0.1. Das ist nämlich das sogenannte "Local Loopback" und damit versucht jeder Client die Datenbank bei sich lokal zu suchen, wo es sie natürlich nicht gibt. Anstatt der IP kann man auch den Servernamen verwenden, was Probleme vermeidet, wenn man auch auf dem Server die IP per DHCP bekommt.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Wie sieht es denn mit Firewalls auf den Rechnern aus? Windows Firewalls sperren gerne die Ports 3050 und 3051, eventuell ist auf dem Linux-Server auch eine iptables Installation vorhanden, die müsste dann auch geprüft werden. Dabei kann dann genau sowas rauskommen.

Mal als Test auf einem der Windows-Rechner Flamerobin installieren und dann damit versuchen, auf den Firebird-Server zuzugreifen. Die Fehlermeldungen von Flamerobin sind im Zweifelsfall aussagekräftiger. Alternativ: DatabaseBrowser Portable von Portableapps.com. Der geht auch ohne Installation.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Das Message-File ist für die Baustelle nicht relevant, das hat nur was mit der Anzeige der Nachricht selbst zu tun. Was mich so wundert ist die Aussage, dass die Datenbank nicht verfügbar sei. Prüfen Sie mal bitte mit netstat ob auf dem Linux-Rechner der Firebird überhaupt nach draußen horcht, will sagen: Prüfen Sie mal ob auf 192.168.xx.xxx Port 3050 der Firebird-Dienst als Listener eingetragen ist. Der Befehl

Code: Alles auswählen

netstat -aon | grep 3050
muss dann etwas liefern in der Art wie

Code: Alles auswählen

tcp        0      0 0.0.0.0:3050            0.0.0.0:*               LISTEN      aus (0.00/0/0)
tcp        0      0 192.168.54.17:3050      192.168.54.19:1471      VERBUNDEN   keepalive (966,27/0/0)
tcp        0      0 192.168.54.17:3050      192.168.54.249:3484     VERBUNDEN   keepalive (5559,08/0/0)
tcp        0      0 192.168.54.17:3050      192.168.54.19:1469      VERBUNDEN   keepalive (5972,08/0/0)
wobei die oberste Zeile das entscheidende ist. Hier muss 0.0.0.0:3050 stehen oder gezielt die IP-Adresse einer echten Ethernetschnittstelle. Da darf auf keinen Fall 127.0.0.1:3050 stehen, weil dann der Firebird nur lokal lauscht und aus dem Netz nicht erreichbar ist.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: Netstat zeigt nur 127.0.0.1:3050

Beitrag von festus01 »

Hallo MBoerner,

Nicht verzweifeln, Hoffnung gibt es immer :D
Welches Problem haben Sie jetzt genau unter Linux?
Es wäre auch hilfreich zu wissen, wie Sie genau firebird und welche Version Sie auf dem Linux-Server installiert haben.

MBoerner hat geschrieben:Oh das scheint das Problem zu sein. Netstat zeigt nur
tcp 0 0 127.0.0.1:3050 0.0.0.0:* LISTEN off (0.00/0/0)
Inzwischen habe ich eine Zweite getrennte Installation vom Ganzen auf einem Windows Server gemacht, damit ich meinem Chef etwas zeigen kann, dort funktioniert es einwandfrei, seitdem ich die ports 3050 und 3051 freigegeben habe. Aber er will lieber einen Linux Server.
Gibt es da Hoffnung? :)

Vielen herzlichen Dank für Ihre Mühe
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Prüfen Sie mal bitte ob es in /etc/firebird/2.5/firebird.conf für die Variable RemoteBindAddress einen nicht auskommentierten Eintrag gibt. Der Eintrag sollte normalerweise auskommentiert sein, und nicht wirksam. Bei Ihnen scheint hier aber das Problem zu liegen.

Von woher haben Sie denn den Firebird? Original von der Webseite oder aus dem Paketmanagement des Servers?

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Bitte ja, weil genau das der Übeltäter ist. Localhost = 127.0.0.1 :evil: Danach den Firebird neu starten und alles sollte laufen wie gewünscht. Da hat es der Paketmanager leider etwas zu gut gemeint mit der Sicherheit ... manchmal enthalten die Pakete aus den Repositories schon sehr seltsame Voreinstellungen :?

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: leider nicht gereicht

Beitrag von festus01 »

Hallo MBoerner,

ich muss mich da noch einmal einschalten.
Dies ganze gedöns mit dem Paketmanger gibt immer wieder Probleme.
Bitte das Paket komplett deinstallieren und firebird von firebird.sql downloaden und manuell installieren.
Sollten Sie dabei Probleme haben, kann ich mich gerne mal per Teamviewer bei Ihnen aufschalten.
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: firebird deinstallieren

Beitrag von festus01 »

MBoerner hat geschrieben:Ok ich habe es mit
APT-get purge firebird2.5-classic
entfernt.
Ich habe das FirebirdSS-2.5.4.26856-0.i686.tar.gz von firebirdsql.org heruntergeladen und entpacke es morgen früh.

Gibt es etwas worauf ich achten soll?
Wo packt man es am besten hin?

Vielen Dank im Voraus
Am besten in das private Verzeichnis, in Ihrem Fall glaube ich root.
Nach dem entpacken einfach das Script install.sh starten.
Nach der Installation muss noch die FreeAdhocUDF.so in das Verzeichnis /opt/firebird/UDF kopiert werden.
Danach sollte der Server schon einmal soweit laufen.
Um nun über einen Alias auf die Datenbank zuzugreifen, müsste noch die aliases.conf entsprechend angepasst werden.

Mir ist gerade noch etwas aufgefallen.
Haben Sie kein 64bit System installiert?
Falls ja, dann bitte die entsprechende 64bit Version herunterladen.

Good Luck :D
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: GDS32 gelöst, jetzt username not defined

Beitrag von festus01 »

Hallo,
das ist ja ein durcheinander.
Warum bekommen alle User Zugriffsrechte auf den firebird Ordner :?:
Weiterhin hätte der find-Befehl so ausgeführt werden müssen:

find / -name fireb*

um alle Dateien die mit fireb anfangen, ab dem obersten Verzeichnis zu finden.

So wie das aussieht, wird weiterhin das alte Script in /etc/init.d ausgeführt.
Führen Sie bitte den find Befehl noch einmal aus und danach noch einmal
find / -name fb_inet*
Das Ergebnis noch einmal posten.
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Ich erlaube mir noch einmal auf den Hinweis von festus01 hinzuweisen: der Server dürfte 64-bit sein, herunter geladen haben Sie aber das 32-bit Paket. Das kann durchaus für solche Probleme verantwortlich sein. Außerdem verstehe ich den Wechsel von Classic zu Super nicht. Das macht es nur noch komplizierter.

Bitte für die Installationsdateien nicht willkürlich auf oberster Ebene ein Verzeichnis anlegen, sondern ins eigene Home-Verzeichnis entpacken. Der Installer erledigt normalerweise den Rest und wuchtet das Zeug nach /opt/firebird ...

ABER: es kann leider auch sein, dass das Installationsskript install.sh einen Hau weg hat, so etwas hatte ich auch schon einmal. Die Suchfunktion dürfte da behilflich sein.

Und als direkte Antwort auf die eigentliche Frage: es geht um die security2.fdb, in welcher der Firebird-Server seine Useraccounts, Rollen usw. speichert.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: GDS32 gelöst, jetzt username not defined

Beitrag von festus01 »

Ich glaube das jetzt schon an dem Ubuntu-System zuviel geschraubt wurde.
Wäre es möglich das System neu aufzusetzen und das richtige firebird Paket von firebirdsql.org herunterzuladen :?:
Danach das Paket in das Verzeichnis root verschieben und in dem Verzeichnis entpacken.
Damit wird ein Verzeichnis erzeugt, in dieses Verzeichnis wechseln und das install Script ausführen.
Bitte keine Rechte für andere User vergeben.
Sollten Probleme bei der Installation von firebird auftreten, biite jeweis einen Screenshot oder genaue Fehlermeldung posten.

Ich glaube Sie wären der Erste auf der Welt, bei dem firebird nicht auf einem Linux-System läuft :wink:

Noch einmal zum Verständnis:
Auf dem Linux-Server läuft ein firebird-daemon und antwortet auf Anfragen über den Port 3050.
Auf dem Linux-Server brauchen keine Benutzer irgendwelche Rechte haben, sondern nur der User firebird, der bei der Installation angelegt wird.
Die Datenbank muss dann mit chown firebird:firebird datenbank dem User zugänglich gemacht werden.
Ein Windows-Client greift dann über die Adresse des Linux-Servers und den Port 3050 auf die Datenbank zu.
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

Hallo,

freut mich, dass es voran geht. Wie festus01 geschrieben hat: es ist nicht immer einfach, aber es hat bisher noch immer am Ende geklappt. Nun zu den Fragen:

Zu 1 und 2 zunächst die Rückfrage, in welches Verzeichnis der Installer den Firebird installiert hat. Normalerweise müsste der jetzt unter /opt/firebird wohnen? Das wäre wichtig zu wissen, weil die Pfadangabe ja für das Startskript gebraucht wird. Normalerweise müsste es im Installationsverzeichnis einen Unterorder bin geben, und dort liegen die Utilities wie gsec, gbak und isql rum. Eventuell ohne das -fb am Ende.

Zu 3: Nein, die Datenbank muss in ein Verzeichnis, das einzig und allein dem User firebird gehört. Dafür bieten sich folgende drei Optionen an, in der Reihenfolge meiner (persönlichen) Präferenz
a1) /var/lib/firebird/2.5/data ... das entspricht exakt dem Pfad, den auch der Installer aus der Paketverwaltung nutzt. Es ist natürlich auch denkbar, das mit der Version und darunter wegzulassen, also nur /var/lib/firebird
a2) wenn firebird in /opt installiert ist, wäre der logische Ablagepfad für seine Nutzdaten /var/opt/firebird ...
b) /opt/firebird/data ... das würde eine in sich geschlossene Verzeichnisstruktur ermöglichen, es besteht aber das Risiko, dass bei einem "hard-core" geschriebenen Uninstaller das komplette Verzeichnis und damit auch die Daten weggeräumt werden
c) /home/firebird, also das Homeverzeichnis des Users Firebird. Normalerweise gibt es das nicht, weil der User sich ja nicht anmeldet. Das verbietet es einem aber nicht, es dennoch von Hand anzulegen und entsprechend mit chmod und chown einzustellen. Vorteil liegt hier darin, dass es bei einer "handelsüblichen" Sicherung des Home-Verzeichnis mit enthalten ist. Ansonsten werden Nutzdaten die in anderen Zweigen liegen (siehe oben das /var/lib) gerne mal vergessen

zu 2 (das zweite 2 :) ): Auch hier wieder nein, es verbietet sich, nämlich unter Linux, das Verzeichnis des lokalen Admins für alle Anwender nach außen freizugeben. Die richtige Vorgehensweise bei einer normalen Sambainstallation ist es, im Verzeichnis /home/samba/share ein passendes Unterverzeichnis anzulegen und dafür eine Freigabe in der smb.conf einzurichten. Alternativ kann man auch direkt in /home ein Verzeichnis anlegen und freigeben, damit verwischt man aber Netzwerkfreigaben und Userverzeichnisse, geht aber halt nicht "schick". Auch gerne genommen wird /usr/local/share als Basis für die Freigaben des Samba. Das wiederum halte ich aber für unlogisch und unsauber. Auch hier wieder beachten, dass normale Anwender auf die Freigabe nur lesenden Zugriff brauchen, ansonsten wird das nämlich gerne mal als Datenablage genutzt :)

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: GDS32 gelöst, jetzt username not defined

Beitrag von festus01 »

Guten Morgen,

so, die erste Hürde wäre geschafft :D

Wie miboe schon schreibt, liegt die Installation jetzt unter /opt/firebird.
Dort gibt es unter anderem die Verzeichnisse bin und UDF.

Vor dem Starten von AvERP muss erst einmal die FreeAdhocUDF.so in das Verzeichnis UDF kopiert werden, sonst gibt es Fehlermeldungen beim Start von AvERP.

Zu 1:
Bitte in das Verzeichnis /opt/firebird/bin wechseln.
Dort den Befehl ./isql ausführen
an dem Prompt die Verbindung zur Testdatenbank herstellen mit:
connect /opt/firebird/examples/empbuild/employee.fdb;
Dann mit
show table;
sich die Tabellen anzeigen lassen.
Werden Tabellen ausgegeben, läuft firebird soweit.

Zu 2:
Der automatische Start sollte von der Installation konfiguriert worden sein.
Das sieht man, wenn es im Verzeichnis /etc/init.d eine Datei namens firebird gibt.

Zu der anderen 2:
Da sind wir auch den Weg, wie ihn miboe beschrieben hat, gegangen.
Wir haben ein separates Installationsverzeichnis erstellt, und dort die AvERP Installation hinein kopiert.
Auf das Sambashare haben alle Benutzer Leserechte.

Zu 3:
Ich habe hier ein Verzeichnis AvERP angelegt, und in dem liegen die Datenbanken.
Dann habe ich in der aliases.conf, im /opt/firebird Verzeichnis, folgenden Eintrag zugefügt:
pallas = /AvERP/pallas.fdb
Somit kann ich mich später einfach mit pallas verbinden, ohne die ganze Verzeichnisstruktur einzugeben.
Außerdem hat das den Vorteil, dass man bei einem Verschieben der Datenbank in ein anderes Verzeichnis, nur die Datei aliases.conf anpassen muss, da bei allen Usern in ihrer averpconnect.cfg als Verbindung der Eintrag pallas vorhanden ist.
Aber das ist Geschmackssache, so wie es miboe schon erwähnt hat.

Der Owner muss auf firebird:firebird stehen, damit der Firebirdprozess volle Rechte hat.

So, und nun viel Glück :D
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Re: GDS32 gelöst, jetzt username not defined

Beitrag von festus01 »

Hallo,
bitte einmal einen ping auf localhost machen.
Wenn das funktioniert dann folgendes auf der Kommandozeile eingeben:

/opt/firebird/bin/fbguard -daemon

Zum automatischen Starten kommen wir später.

Jetzt noch einmal mit isql versuchen eine Verbindung zur employee Datenbank herzustellen.

Bitte Ergebnis posten.
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Re: GDS32 gelöst, jetzt username not defined

Beitrag von miboe »

fbguard wird auch wahrscheinlich nicht funktionieren, weil der normalerweise für den Classic nicht genutzt wird. Da hatte festus01 den Wechsel zurück zum Classic übersehen :) Der Befehl müsste also auf fb_inet_server umgeschrieben werden.

Ich habe bei mir noch einmal nachgeschaut und bei mir gibt es in /etc/init.d das Script firebird2.5-classic über welches der Server gestartet wird. Allerdings ist der bei mir aus der Paketverwaltung installiert. Mit ein bisschen Anpassung müsste man das aber nutzen können, deswegen hier der inhalt:

Code: Alles auswählen

#!/bin/sh

### BEGIN INIT INFO
# Provides:          firebird2.5-classic
# Required-Start:    $remote_fs $syslog
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Initialise firebird directory inder /var/run
# Description:       Creates /var/run/firebird/2.5 and sets appropriate
#                    ownership/permissions
#                    Does not start any service, but required by firebird
#                    classic-server variant if /var/run is mounted on tmpfs
### END INIT INFO


# Source LSB function library.
. /lib/lsb/init-functions

set -u

FB_VER="2.5"
FB_FLAVOUR="classic"

FUNCTIONS="/usr/share/firebird${FB_VER}-common/functions.sh"
[ -e "$FUNCTIONS" ] || exit 0
. "$FUNCTIONS"

# Check the manager is there and is executable.
SERVER=/usr/sbin/fb_inet_server
[ -x $SERVER ] || exit 0

# workaround of splashy's #400598
# define RUNLEVEL to avoid unbound variable error
RUNLEVEL=${RUNLEVEL:-}


# See how we were called.
case "${1:-}" in
    start|restart|force-reload)
    log_action_begin_msg "Preparing $RUN"
    create_var_run_firebird
    RETVAL=$?
    log_action_end_msg $RETVAL
    ;;

    stop)
    RETVAL=0
    ;;

    status)
    RETVAL=0
    ;;

    *)
    echo "Usage: firebird {start|stop|restart|force-reload}"
    RETVAL=2
    ;;
esac

exit $RETVAL
Was mir aber gerade einfällt: der Classic Server gehört zu inetd und dessen Subsystem, entsprechend müssen also seine Start- und Stopeinträge in /etc/inetd.conf enthalten sein. Bei mir sieht das so aus:

Code: Alles auswählen

#:OTHER: Other services
gds_db          stream  tcp     nowait  firebird        /usr/sbin/tcpd  /usr/sbin/fb_inet_server
Vielleicht hilft das alles ja. Und nach dem (manuellen) Start des Servers dann noch einmal die Versuche mit isql machen.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Antworten