Seite 1 von 2

Error 121 bei Neuinstallation mit MySQL

Verfasst: Mittwoch 3. März 2010, 00:12
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.

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Mittwoch 3. März 2010, 21:04
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

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Sonntag 7. März 2010, 04:45
von thorstenheissel
Hallo Heiner,
ja vielen Dank! Mit dem build 227, Datenbank-Version 94 auf Mac Snow Leopard geht alles problemlos.
Thorsten

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Sonntag 9. Mai 2010, 12:19
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

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Sonntag 9. Mai 2010, 12:45
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

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Mittwoch 12. Mai 2010, 17:51
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

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Mittwoch 12. Mai 2010, 18:07
von diosd
Hallo Heiner,

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

Gruß und schönen Feiertag
Knut

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Mittwoch 12. Mai 2010, 18:25
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

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Mittwoch 12. Mai 2010, 22:16
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

Re: Error 121 bei Neuinstallation mit MySQL

Verfasst: Donnerstag 13. Mai 2010, 07:32
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.