Error 121 bei Neuinstallation mit MySQL

Hier melden JVerein-Benutzer ihre Fehler

Moderator: heiner

thorstenheissel
Beiträge: 2
Registriert: Mittwoch 3. März 2010, 00:03

Error 121 bei Neuinstallation mit MySQL

Beitrag von thorstenheissel »

Bei der Neuinstallation mit mySQL (Version 1.2) tritt ein Fehler beim Anlegen der Datenbank auf. Im SQL Script 45 versucht Jverein den foreign Key fkLehrgang2 anzulegen. Das schlaegt aber fehl, da dieser foreign key schon ueber das Script 41 angelegt wurde.

Workaround Vorschlag: Das Script "\Program Files\jameica\plugins\jverein\sql.mysql\0041.sql" oeffnen und den Inhalt loeschen (z.B. durch einfuegen von "-- nothing to do" anstelle des "Alter Table" statements.
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von heiner »

Hallo thorstenheissel,

versuche doch bitte mal den RC1 der Version 1.3.0 zusammen mit den aktuellen Nightly-Builds von Jameica und JVerein. Ich hoffe, dass es damit ohne Probleme geht.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
thorstenheissel
Beiträge: 2
Registriert: Mittwoch 3. März 2010, 00:03

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von thorstenheissel »

Hallo Heiner,
ja vielen Dank! Mit dem build 227, Datenbank-Version 94 auf Mac Snow Leopard geht alles problemlos.
Thorsten
diosd
Beiträge: 5
Registriert: Sonntag 9. Mai 2010, 12:12

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von diosd »

Hallo Heiner,

ich bekomme den Fehler bei der Erstinstallation der Datenbank trotz Verwendung der aktuellen Version 1.3.0:
jverein.jar 859KB vom 09.04.2010 14:38

Beim erneuten Versuch meckert die Routine dann die bereits vorhandenen Tabellen an.

Hast Du einen Tipp?

Gruß
Knut
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von heiner »

Hallo Knut,

einen entsprechenden Fehlerbericht habe ich Anfang der Woche bekommen und einen Bugfix gebaut. Ein User testet die Sache. Sobald es eine positive Rückmeldung gibt, werde ich die Version 1.3.1 freigeben.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von heiner »

Hallo Knut,

ich sende dir eine Entwicklerversion der 1.3.1 per Mail zum weiteren Test. Bitte lösche die Datenbank und richte sie neu ein. Alternativ kannst du auch alle Tabellen entfernen.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
diosd
Beiträge: 5
Registriert: Sonntag 9. Mai 2010, 12:12

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von diosd »

Hallo Heiner,

werde die Installation mit einer jungfräulichen Datenbank durchführen und berichten.

Gruß und schönen Feiertag
Knut
diosd
Beiträge: 5
Registriert: Sonntag 9. Mai 2010, 12:12

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von diosd »

Hallo Heiner,
leider kein Erfolg :( :

[Wed May 12 18:19:57 CEST 2010][ERROR][de.willuhn.sql.ScriptExecutor.execute] error while executing sql script. Current
statement: ALTER TABLE lehrgang ADD CONSTRAINT fkLehrgang2 FOREIGN KEY (lehrgangsart) REFERENCES lehrgangsart (id) ON DE
LETE CASCADE
java.sql.SQLException: Can't create table 'jverein.#sql-690_4' (errno: 121)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
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:3250)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1355)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1270)
at de.willuhn.sql.ScriptExecutor.execute(ScriptExecutor.java:168)
at de.jost_net.JVerein.server.JVereinUpdateProvider.execute(JVereinUpdateProvider.java:444)
at de.jost_net.JVerein.server.JVereinUpdateProvider.update0045(JVereinUpdateProvider.java:1570)
at de.jost_net.JVerein.server.JVereinUpdateProvider.<init>(JVereinUpdateProvider.java:159)
at de.jost_net.JVerein.server.JVereinDBServiceImpl.install(JVereinDBServiceImpl.java:149)
at de.jost_net.JVerein.JVereinPlugin$2.call(JVereinPlugin.java:173)
at de.jost_net.JVerein.JVereinPlugin.call(JVereinPlugin.java:257)
at de.jost_net.JVerein.JVereinPlugin.install(JVereinPlugin.java:168)
at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:283)
at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:181)
at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:138)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:118)
at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:71)
at de.willuhn.jameica.system.Application.init(Application.java:101)
at de.willuhn.jameica.system.Application.newInstance(Application.java:85)
at de.willuhn.jameica.Main.main(Main.java:78)

Gruß
Knut
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von heiner »

Welche MySQL-Version läuft bei dir?
Bei mir läuft 5.1.41-3ubuntu12 ohne Probleme. Allerdings hat mir ein anderer Benutzer den gleichen Fehler wie du berichtet. Jetzt stehe ich zunächst mal auf dem Schlauch.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
diosd
Beiträge: 5
Registriert: Sonntag 9. Mai 2010, 12:12

Re: Error 121 bei Neuinstallation mit MySQL

Beitrag von diosd »

Hallo Heiner,

bei mir läuft Server version: 5.1.46-community MySQL Community Server (GPL) unter Windows NT.

Versuche ich den FK manuell anzulegen, erhalte ich (als root in der DB - an den Rechten kann es also wohl nicht liegen) die Fehlermeldung
ERROR 1005 (HY000): Can't create table 'jverein.#sql-9b8_4' (errno: 121)

Wenn ich mir die Tabellen anschaue, sieht das wie folgt aus:

mysql> desc lehrgangsart;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| bezeichnung  | varchar(50) | NO   |     | NULL    |                |
| von          | date        | YES  |     | NULL    |                |
| bis          | date        | YES  |     | NULL    |                |
| veranstalter | varchar(50) | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

5 rows in set (0.17 sec)

mysql> desc lehrgang;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| mitglied     | int(11)     | NO   | MUL | NULL    |                |
| lehrgangsart | int(11)     | NO   | MUL | NULL    |                |
| von          | date        | YES  |     | NULL    |                |
| bis          | date        | YES  |     | NULL    |                |
| veranstalter | varchar(50) | YES  |     | NULL    |                |
| ergebnis     | varchar(50) | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

7 rows in set (0.00 sec)

mysql> show index from lehrgang;
+----------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+
| Table    | Non_unique | Key_name    | Seq_in_index | Column_name  | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+
| lehrgang |          0 | PRIMARY     |            1 | id           | A         |           0 |     NULL | NULL   |      | BTREE      |         |
| lehrgang |          0 | id          |            1 | id           | A         |           0 |     NULL | NULL   |      | BTREE      |         |
| lehrgang |          1 | fkLehrgang1 |            1 | mitglied     | A         |           0 |     NULL | NULL   |      | BTREE      |         |
| lehrgang |          1 | fkLehrgang2 |            1 | lehrgangsart | A         |           0 |     NULL | NULL   |      | BTREE      |         |
+----------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+
4 rows in set (0.03 sec)

Show innDB Status weist u.a. folgendes aus:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
100513 7:35:05 Error in foreign key constraint creation for table `jverein`.<result 2 when explaining filename '#sql-9b
8_e'>.
A foreign key constraint of name `jverein/fkLehrgang2` already exists. (Note that internally InnoDB adds 'databasename/' in front of the user-defined constraint name).
Note that InnoDB's FOREIGN KEY system tables store constraint names as case-insensitive, with the MySQL standard latin1_swedish_ci collation. If you create tables or databases whose names differ only in the character case, then collisions in constraint names can occur. Workaround: name your constraints explicitly with unique names.
------------


Für mich heißt das, der FK ist vorhanden. Das weist auch das generierte ER-Diagramm aus. Wird der Key doppelt angelegt? Darauf deuten auch die Postings hier hin:

http://dev.mysql.com/doc/refman/5.0/en/ ... codes.html

Wenn ich Dir noch irgendwie helfen kann, gib Bescheid.

Gruß
Knut

P.S.: Nach
alter table lehrgang drop FOREIGN KEY fkLehrgang2;
funktioniert
ALTER TABLE lehrgang ADD CONSTRAINT fkLehrgang2 FOREIGN KEY (lehrgangsart) REFERENCES lehrgangsart (id) ON DELETE CASCADE;
problemlos.
Antworten