Umstieg 2.0.5 von W...
 
Benachrichtigungen
Alles entfernen

Umstieg 2.0.5 von Windows MySQL auf Linux

2 Beiträge
1 Benutzer
0 Reactions
537 Aufrufe
(@Fantomas)
Active Member
Beigetreten: vor 13 Jahren
Beiträge: 16
Topic starter   [#2602]

Hi,
ich habe einen SQL-Dump der fakturama Datenbank auf Windows gemacht.
Jetzt habe ich auf Linux Mint 2.0.5 installiert, die Datenbank in MySQL angelegt, Privilegien auf den Benutzer gelegt, die Daten eingelesen (sind auch da).
Wenn ich Fakturama das zweite mal nach Eingabe der Datenbank-Verbindung starte, bricht das Programm ab. Es scheint ein Problem mit "Duplicate Key" zu geben:

Error: Can't write; duplicate key in table '#sql-2de_3c' [Failed SQL: ALTER TABLE `fakturama`.`FKT_CATEGORY` ADD CONSTRAINT `FK_FKT_CATEGORY_ABSTRACTCATEGORY_PARENT` FOREIGN KEY (`ABSTRACTCATEGORY_PARENT`) REFERENCES `fakturama`.`FKT_CATEGORY` (`ID`) ON UPDATE NO ACTION ON DELETE NO ACTION]
GENERAL_WORKSPACE=/home/username/Fakturama
eclipse.preferences.version=1
javax.persistence.jdbc.driver=com.mysql.jdbc.Driver
javax.persistence.jdbc.password=password
javax.persistence.jdbc.url=jdbc:mysql://localhost:3306/fakturama
javax.persistence.jdbc.user=username
jdbc_reconnect=true
standardpayment=1
standardshipping=1
standardvat=1

Wenn ich mit einer leeren Datenbank beginne, kommt der Fehler nicht.

Hat jemand eine Idee?

Gruß
Thomas



   
Zitat
(@Fantomas)
Active Member
Beigetreten: vor 13 Jahren
Beiträge: 16
Topic starter  

Gelöst.

Das Problem ist der mysqldump aus Windows, wo die Tabellennamen generell in Kleinbuchstaben ausgegeben wurden:

DROP TABLE IF EXISTS `fkt_category`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `fkt_category` (

und der in Linux:

DROP TABLE IF EXISTS `FKT_CATEGORY`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `FKT_CATEGORY` (

Ich habe das so korrigiert:

cat windows.sql | sed -e 's/([`].*[`])/U1/g' > linux.sql	# finde Backticks und den Text dazwischen und wandele das in Großbuchstaben um.

Gruß
Thomas



   
AntwortZitat
Teilen: