MySQL bei unserem Internet-Hoster

Hier verraten JVerein-Benutzer ihre Tricks und Tips zur JVerein

Moderator: heiner

Boby
Beiträge: 28
Registriert: Freitag 20. Januar 2012, 21:54

MySQL bei unserem Internet-Hoster

Beitrag von Boby »

Hallo,
ich habe bei der Installation kurzerhand mal versucht, die Daten in eine MySQL-Datenbank legen zu lassen - und zwar in eine, die mein Internet-Hoster unserer Web-Präsenz anbietet.
Bei der Installation gab's kurz einen Fehlerhinweis; beim zweiten Mal sagte die Installation "Datenbank vollständig".

ABER: Ich finde am Server eigentlich nur Tabellen von Buchhaltungsdaten:

abschreibung
anlagevermoegen
buchung
buchungstemplate
finanzamt
geschaeftsjahr
kontenrahmen
konto
kontoart
kontotyp
konto_ab
mandant
property
steuer
version

=> Wo werden die Mitgliedsdaten gespeichert? Weiterhin lokal? Oder ist mir bei der Installation etwas passiert und es fehlen Tabellen?
Wo speichtert JVerein dann eigentlich die Mitgliedsdaten? (denn die sind nach Neustart wieder da).

WICHTIG: Mein Hoster generiert den Datenbanknamen selbst - ich kann diesen nicht beeinflussen.

Danke,
Boby
Boby
Beiträge: 28
Registriert: Freitag 20. Januar 2012, 21:54

Re: MySQL bei unserem Internet-Hoster

Beitrag von Boby »

Okay, es düfte wohl nur synTAX auf MySQL gehen - JVerein selbst arbeitet offenbar lokal mit h2db arbeiten.
Ist es einmal geplant, dass JVerein seine Daten auch auf MySQL ablegen kann?

Danke,
Boby
Benutzeravatar
heiner
Administrator
Beiträge: 4511
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: MySQL bei unserem Internet-Hoster

Beitrag von heiner »

PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Boby
Beiträge: 28
Registriert: Freitag 20. Januar 2012, 21:54

Re: MySQL bei unserem Internet-Hoster

Beitrag von Boby »

Ups, danke das habe ich überlesen - wer bis zum Ende liest ist da deutlich im Vorteil ;-)
Allerdings klappt es nich nicht - ich habe folgendes gemacht:

1) Das Verzeichnis .jameica umbenannt
2) Das Property-File mit dem Namen aus der Doku und meinen Einstellungen unter C:\Program Files\jameica\cfg abgelegt
(das in der Beschreibung erwähnte .BAT file habe ich nirgends gefunden)
3) Jameica Suite neu gestartet

Trotzdem werden am Server keine Tabellen angelegt und in einem Logfile habe ich das gefunden:
[Sat Jan 21 17:02:20 CET 2012][INFO][de.jost_net.JVerein.JVereinPlugin.init] starting init process for jverein
[Sat Jan 21 17:02:20 CET 2012][INFO][de.jost_net.JVerein.server.JVereinDBServiceImpl.<init>] loading database driver: de.jost_net.JVerein.server.DBSupportH2Impl
[Sat Jan 21 17:02:20 CET 2012][INFO][de.jost_net.JVerein.server.DBSupportH2Impl.<init>] switching dbservice to uppercase
[Sat Jan 21 17:02:20 CET 2012][INFO][de.jost_net.JVerein.server.DBSupportH2Impl.<init>] h2 version: 1.2.145

Offenbar habe ich immer noch die lokale DB laufen - was nun?
Bin für jeden Tipp dankbar.

Danke,
Boby
Boby
Beiträge: 28
Registriert: Freitag 20. Januar 2012, 21:54

Re: MySQL bei unserem Internet-Hoster

Beitrag von Boby »

Okay, mein Fehler...mein Property File hieß ...property.property ;-)
Jetzt habe ich wenigstens ein "Fehler beim Initialisieren der Datenbank"
Ich such' mal weiter...

LG,
Boby
Boby
Beiträge: 28
Registriert: Freitag 20. Januar 2012, 21:54

Re: MySQL bei unserem Internet-Hoster

Beitrag von Boby »

Okay, Problem gelöst...aus mir nicht bekanntem Grund war das property-File wieder im Originalzustand (ohne User, Passwort,...).
Da es danach auch nicht geklappt hat, habe ich die DB am Server gelöscht & eine neue angelegt - und das ganze Spiel mit cfg, property-File und .jameica löschen nochmals gemacht.
=> SUCCESS

Endlich kann ich die Mitgliedsdaten einsehen bzw. sogar bearbeiten; das Rückspielen des Backups von gestern hat astrein geklappt.

Allerdings läuft Syntax jetzt nicht mehr - ich bekomme folgende Fehlermeldung:

Hibiscus-Datenbank konnte nicht initialisiert werden.
connection to database.jdbc:h2:D:\.jameica\hibiscus/h2db/hibiscus;CIPHER=XTEA failed; nested exception is:
org.h2.jdbc.JdbcSQLException: Verschlüsselungsfehler in Datei "D:\.jameica\hibiscus\h2db\hibiscus.h2.db"
Encryption error in file "D:\.jameica\hibiscus\h2db\hibiscus.h2.db" [90049-145]

Damit kann ich z.B. keinen Vereinsnahmen mehr speichern und die ganzen Einstellungen.

Ich werd' noch mal weitersuchen, wäre aber für einen Tipp dankbar.

LG,
Boby

P.S.: Wäre toll, wenn die DB-Frage schon beim Setup gestellt würde - und das Property bzw. die nötigen Einstellungen abgefragt würden - für PC-Newbies ist da nämlich nichts (aber PC-Newbies werden die Daten vermutlich nicht auf einem DB-Server legen wollen).
P.P.S.: Ich habe zwar noch nicht viel von dem Proggie gesehen, aber das was ich bisher gesehen habe, gefällt mir ausnehmend gut! Dickes Lob an den/die Erschaffer!
Benutzeravatar
heiner
Administrator
Beiträge: 4511
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: MySQL bei unserem Internet-Hoster

Beitrag von heiner »

Hallo Boby,
P.S.: Wäre toll, wenn die DB-Frage schon beim Setup gestellt würde - und das Property bzw. die nötigen Einstellungen abgefragt würden - für PC-Newbies ist da nämlich nichts (aber PC-Newbies werden die Daten vermutlich nicht auf einem DB-Server legen wollen).
PC-Newbies sollten keine MySQL-Datenbank nutzen. Siehe auch http://www.jverein.de/faq.php#internet

Hinweis: Hibiscus, Syntax und JVerein benötigen jeweils eine eigene DB-Konfiguration und auch jeweils eine eigene Datenbank.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
DRK_OV-Einbeck
Beiträge: 15
Registriert: Dienstag 24. Januar 2012, 22:04

Re: MySQL bei unserem Internet-Hoster

Beitrag von DRK_OV-Einbeck »

Ich würde gerne eine H2 DB in eine MySQL DB importieren, habe damit aber ein paar Probleme. Ausgangspunkt ist eine Sicherungskopie von JVerein 1.6. Diese Datensicherung importiere ich auf einer Test VM problemlos in die 2.0.1 von JVerein (immer noch mit H2 DB). Ich beende JVerein und erstelle wie in der MySQL Doku beschrieben die Propertydatei für den DB Zugriff. Bevor ich JVerin starte benenne ich testweise .jameica in x.jameica um und die MySQL DB "jverein" auf dem MySQL Server wird mit Tabellen bestückt (nach dem Start von JVerein). Dann versuche ich das Diagnosebackup aus der Sicherung der H2 Datenbank im 2.0.1 Format zu importieren und bekommen als ersten Fehlern:
[Wed Jan 25 07:42:40 CET 2012][ERROR][de.jost_net.JVerein.gui.action.BackupRestoreAction$1.run] unable to import de.jost_net.JVerein.server.MitgliedskontoImpl:null, skipping
java.rmi.RemoteException: insert failed, rollback successful; nested exception is:
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`jverein`.`mitgliedskonto`, CONSTRAINT `fkMitgliedskonto1` FOREIGN KEY (`abrechnungslauf`) REFERENCES `abrechnungslauf` (`id`) ON DELETE CASCADE)
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:672)
at de.jost_net.JVerein.gui.action.BackupRestoreAction$1.run(BackupRestoreAction.java:194)
at de.willuhn.jameica.gui.GUI$6.run(GUI.java:917)
Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`jverein`.`mitgliedskonto`, CONSTRAINT `fkMitgliedskonto1` FOREIGN KEY (`abrechnungslauf`) REFERENCES `abrechnungslauf` (`id`) ON DELETE CASCADE)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1585)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1500)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1485)
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:633)
... 2 more
Die Daten sehen dann auf den ersten Blick ok aus, allerdings fehlt mir unter Abrechnung dann aktuell die Möglichkeit vierteljährlich oder monatlich abzurechnen. Wobei ich dazu sagen muss das ich alle Beiträge über Zusatzbeiträge einziehe und nur eine dummy Beitragsklasse mit 0,00€ habe in der alle Mitglieder sind. Ich will allerdings versuchen das über die neue Möglichkeit "individuelle Beiträge" anzupassen (dazu später mehr).
Boby
Beiträge: 28
Registriert: Freitag 20. Januar 2012, 21:54

Re: MySQL bei unserem Internet-Hoster

Beitrag von Boby »

Hi,
Du schreibst, dass Du die Daten aus V1.6 ins V2.0.1 importierst - ich lese dann aber nichts mehr davon, dass Du (nach dem Import) ein neues Backup mit der V2.0.1 gemacht hast.
Solltest Du wirklich versucht haben, das V1.6-Backup direkt einzuspielen, versuch vorher mal ein neues Backup (nach dem Import) zu machen - und dann auf MySQL zu importieren.

Ich habe es nämlich genauso gemacht - aber da ich mit 2.0.1. gestartet bin, hatte ich andere Startvoraussetzungen.

Jedenfalls deutet die Meldung...

Code: Alles auswählen

MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`jverein`.`mitgliedskonto`, CONSTRAINT `fkMitgliedskonto1` FOREIGN KEY (`abrechnungslauf`) REFERENCES `abrechnungslauf` (`id`) ON DELETE CASCADE)
 
darauf hin, dass die importierten Daten nicht (mehr) zu dem Datenmodell passen.

Ich kenne jetzt das Datenmodell von jverein nicht im Detail, aber als Ferndiagnose kann ich folgendes ablesen:
In der Tabelle "mitgliedskonto" gibt es einen foreign-key-constraint, der sicherstellt, dass das Feld "abrechnungslauf" in der Tabelle "mitgliedskonto" nur Daten beinhält, die er auch in der Tabelle "abrechnungslauf", feld "id" findet. Entweder fehlt Dir in Deinem Datenmodell eines der genannten Felder in den Tabellen - wahrscheinlicher ist aber, dass Du im Feld "abrechnungslauf" in der Tabelle "mitgliedskonto" ID's stehen hast, die in der tabelle "abrechnungskonto" im Feld "ID" nicht zu finden sind => kannst Du das checken?

Und falls doch, dann gibt es ein Probem mit der Reihenfolge der Dateneinspielung - es muss nämlich die Tabelle "abrechnungslauf" VOR der Tabelle "mitgliedskonto" befüllt werden, sonst geht die Prüfung der referenziellen Integrität immer schief.

LG,
Robert
Benutzeravatar
heiner
Administrator
Beiträge: 4511
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: MySQL bei unserem Internet-Hoster

Beitrag von heiner »

Hallo,

du machst 2 Schritte auf einmal. Das geht nicht. Mache zunächst das Update auf 2.0.1 unter H2. Dann erstelle ein Diagnose-Backup und mache damit den Umstieg auf MySQL.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Antworten