Fehler nach Umzug

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Fehler nach Umzug

Beitrag von farchris »

Hallo,
ich möchte gerne mit meiner Datenbank umziehen.
Ich habe mit MySqlDumper, sowie mit phpMyAdmin Backups erstellt, aber leider kann ich diese nicht mehr einspielen.
Bei MySQLDumper kommt folgende Fehlermeldung:
Fehler bei der Anfrage:
CREATE TABLE `adm_announcements` ( `ann_id` int(11) unsigned NOT NULL auto_increment, `ann_org_shortname` varchar(10) NOT NULL default '', `ann_global` tinyint(1) unsigned NOT NULL default '0', `ann_headline` varchar(50) NOT NULL default '', `ann_description` text, `ann_usr_id` int(11) unsigned default NULL, `ann_timestamp` datetime NOT NULL default '0000-00-00 00:00:00', `ann_last_change` datetime default NULL, `ann_usr_id_change` int(11) unsigned default NULL, PRIMARY KEY (`ann_id`), KEY `ANN_ORG_FK` (`ann_org_shortname`), KEY `ANN_USR_FK` (`ann_usr_id`), KEY `ANN_USR_CHANGE_FK` (`ann_usr_id_change`), CONSTRAINT `adm_FK_ANN_ORG` FOREIGN KEY (`ann_org_shortname`) REFERENCES `adm_organizations` (`org_shortname`), CONSTRAINT `adm_FK_ANN_USR` FOREIGN KEY (`ann_usr_id`) REFERENCES `adm_users` (`usr_id`), CONSTRAINT `adm_FK_ANN_USR_CHANGE` FOREIGN KEY (`ann_usr_id_change`) REFERENCES `adm_users` (`usr_id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
MySQL meldet:

Couldn't create table: adm_announcements
Bei phpMyAdmin kommt folgende:
SQL-Befehl:
-- phpMyAdmin SQL Dump
-- version 2.6.3-pl1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 19. Februar 2007 um 12:35
-- Server Version: 4.1.13
-- PHP-Version: 4.4.0
--
-- Datenbank: `usr_fun`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `adm_announcements`
--
DROP TABLE IF EXISTS `adm_announcements`

MySQL meldet: Dokumentation
#1046 - No database selected

Was kann man da machen?
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hi,

du hast bei phpMyAdmin vorher wohl keine Datenbank ausgewählt. Evtl. ist dies auch das Problem bei dem MySqlDumper. Also erst Datenbank auswählen und dann das Script einspielen.

Du kannst ansonsten auch einfach an den Anfang des Scriptes folgendes setzen:

Code: Alles auswählen

use 'mein-datenbankname';
Gruß
Fasse
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo,
doch, ich habe eine Datenbank ausgewählt.
Leider kommt die Fehlermeldung immer noch.
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

In der Meldung von PhpMyAdmin steht aber

Code: Alles auswählen

#1046 - No database selected
Die Auswahl der DB kommt wohl beim Scripteinspielen nicht an.
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo, hier mal der Anfang der mySQlDumper SQL-Datei:
-- use 'usr_comuse';
-- Status:16:288:MP_0:usr_fun:php:1.21 b6::4.1.13:1000001:::EXTINFO
--
-- TABLE-INFO
-- TABLE|adm_announcements|7|65536|
-- TABLE|adm_dates|13|65536|
-- TABLE|adm_guestbook|196|147456|
-- TABLE|adm_guestbook_comments|1|49152|
-- TABLE|adm_links|1|49152|
-- TABLE|adm_members|14|65536|
-- TABLE|adm_organizations|1|49152|
-- TABLE|adm_photos|1|81920|
-- TABLE|adm_preferences|8|32768|
-- TABLE|adm_role_categories|1|32768|
-- TABLE|adm_role_dependencies|0|65536|
-- TABLE|adm_roles|3|65536|
-- TABLE|adm_sessions|13|65536|
-- TABLE|adm_user_data|11|65536|
-- TABLE|adm_user_fields|7|32768|
-- TABLE|adm_users|11|147456|
-- EOF TABLE-INFO
--


-- Dump by MySQLDumper 1.21 b6 (http://www.mysqldumper.de/board/)
-- Dump created at 2007-02-21 13:41



--
-- Create Table `adm_announcements`
--

DROP TABLE IF EXISTS `adm_announcements`;
CREATE TABLE `adm_announcements` (
`ann_id` int(11) unsigned NOT NULL auto_increment,
Danke
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Code: Alles auswählen

-- use 'usr_comuse'; 
ist auskommentiert, somit wird im Script selber keine Datenbank ausgewählt. Ich weiß jetzt nicht wo und wie du das in PhpMyAdmin ausführst, aber scheinbar braucht er irgendwo eine Festlegung auf die DB.
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo, ich habe es nun geändert:
Das klappt auch nicht
-- Status:16:288:MP_0:usr_fun:php:1.21 b6::4.1.13:1000001:::EXTINFO
--
-- TABLE-INFO
-- TABLE|adm_announcements|7|65536|
-- TABLE|adm_dates|13|65536|
-- TABLE|adm_guestbook|196|147456|
-- TABLE|adm_guestbook_comments|1|49152|
-- TABLE|adm_links|1|49152|
-- TABLE|adm_members|14|65536|
-- TABLE|adm_organizations|1|49152|
-- TABLE|adm_photos|1|81920|
-- TABLE|adm_preferences|8|32768|
-- TABLE|adm_role_categories|1|32768|
-- TABLE|adm_role_dependencies|0|65536|
-- TABLE|adm_roles|3|65536|
-- TABLE|adm_sessions|13|65536|
-- TABLE|adm_user_data|11|65536|
-- TABLE|adm_user_fields|7|32768|
-- TABLE|adm_users|11|147456|
-- EOF TABLE-INFO
--


-- Dump by MySQLDumper 1.21 b6 (http://www.mysqldumper.de/board/)
-- Dump created at 2007-02-21 13:41



--
-- Create Table `adm_announcements`
--
use 'usr_comuse';
DROP TABLE IF EXISTS `adm_announcements`;
aber ich denke ich muss garnicht ein use 'usr_comuse';, da ich die Datenbank z.B. in mysqldumper immer auswähle.
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Probleme könnte es vielleicht auch mit den Constraints geben. MySqlDumper will die Constraints scheinbar zusammen mit jeder Tabelle anlegen. Dies geht am Anfang aber sich er schief, da noch keine andere Tabelle existiert. Sinnvoll wäre es wenn MySqlDumper beim Backup erst einmal alle Tabellen erstellen würde und danach erst alle Constraints einfügt.

Kann man sowas vielleicht irgendwo in den Einstellungen festlegen ?
milkaman
Former team member
Beiträge: 129
Registriert: 22. Feb 2006, 18:07

Beitrag von milkaman »

Wenn es probleme mir den Constraints gibt, muss man beim Einspielen der Sicherung auf jeden Fall zu begin des Mysqldumper scipts:

SET FOREIGN_KEY_CHECKS=0;

und am Ende

SET FOREIGN_KEY_CHECKS=1;

setzen.

Gruss

Roland
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

milkaman hat geschrieben:Wenn es probleme mir den Constraints gibt, muss man beim Einspielen der Sicherung auf jeden Fall zu begin des Mysqldumper scipts:

SET FOREIGN_KEY_CHECKS=0;

und am Ende

SET FOREIGN_KEY_CHECKS=1;

setzen.

Gruss

Roland
Hallo,
nachdem ich dies gemacht habe, kommt:
Fehler bei der Anfrage:

INSERT INTO `adm_guestbook` (`gbo_id`,`gbo_org_id`,`gbo_usr_id`,`gbo_name`,`gbo_text`,`gbo_email`,`gbo_homepage`,`gbo_timestamp`,`gbo_ip_address`,`gbo_last_change`,`gbo_usr_id_change`) VALUES ('77','1','1','Christian Schmitz','achso ...','farchris@comuse.org','','2006-12-12 14:55:21','217.232.80.28',NULL,NULL);
MySQL meldet:

Cannot add or update a child row: a foreign key constraint fails
milkaman
Former team member
Beiträge: 129
Registriert: 22. Feb 2006, 18:07

Beitrag von milkaman »

Eigentlich sollten die beiden Statements genau das verhindern.

Bist du sicher das in der SQL Datei, die du versucht hast einzuspielen, am Anfang und am Ende diese Sachen eingetragen waren?
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo,
danke für die Antwort.
Ich habe die Befehle am Anfang und am Ende gesetzt.
Hier mal ein Teil der SQL-Datei:

Code: Alles auswählen

SET FOREIGN_KEY_CHECKS=0;
-- Status:16:308:MP_0:usr_fun:php:1.21 b6::4.1.13:1000001:::EXTINFO
--
-- TABLE-INFO
-- TABLE|adm_announcements|9|65536|
-- TABLE|adm_dates|13|65536|
-- TABLE|adm_guestbook|204|147456|
-- TABLE|adm_guestbook_comments|2|49152|
-- TABLE|adm_links|1|49152|
-- TABLE|adm_members|14|65536|
-- TABLE|adm_organizations|1|49152|
-- TABLE|adm_photos|1|81920|
-- TABLE|adm_preferences|8|32768|
-- TABLE|adm_role_categories|1|32768|
-- TABLE|adm_role_dependencies|0|65536|
-- TABLE|adm_roles|3|65536|
-- TABLE|adm_sessions|12|65536|
-- TABLE|adm_user_data|11|65536|
-- TABLE|adm_user_fields|7|32768|
-- TABLE|adm_users|21|147456|
-- EOF TABLE-INFO
--


-- Dump by MySQLDumper 1.21 b6 (http://www.mysqldumper.de/board/)
-- Dump created at 2007-02-23 15:32


--
-- Create Table `adm_announcements`
--

DROP TABLE IF EXISTS `adm_announcements`;
CREATE TABLE `adm_announcements` (
  `ann_id` int(11) unsigned NOT NULL auto_increment,
  `ann_org_shortname` varchar(10) NOT NULL default '',
  `ann_global` tinyint(1) unsigned NOT NULL default '0',
  `ann_headline` varchar(50) NOT NULL default '',
 
(...)
(...)
(...)

/*!40000 ALTER TABLE `adm_users` ENABLE KEYS */;


-- EOB - End of backup\n\n\n
SET FOREIGN_KEY_CHECKS=1; 
Ich versuche die Datenbank von usr_fun in die Datenbank usr_comuse wiederherzustellen.
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Kann es vielleicht sein, dass innerhalb des Backups ein Commit gemacht wird und man die Einstellung dann noch einmal setzen muss ?
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo,
woran erkenne ich ein Commit?
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Es müsste dann commit drin stehen, aber ich glaub das ist sowieso die falsche Fährte.
Antworten