Database Error nach Schritt 2 bei Installation

Fragen zur Installation von ConPresso 4 werden in diesem Forum diskutiert.
radamazone
ConPresso-Checker
Beiträge: 101
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal

Database Error nach Schritt 2 bei Installation

Beitrag von radamazone »

Hallo,

bekomme nach dem Absenden des Fomulars bei Schritt 2 die folgende Fehlermeldung:

Code: Alles auswählen

Database error:
Invalid SQL: CREATE TABLE cpo4_block ( id int(11) NOT NULL auto_increment, news_nr int(11) NOT NULL default '0', create_date datetime NOT NULL default '0000-00-00 00:00:00', log_login_id int(11) NOT NULL default '0', PRIMARY KEY (id), KEY log_login_id (log_login_id), KEY create_date (create_date), KEY news_nr (news_nr)) TYPE=MyISAM;
Table 'cpo4_block' already exists (1050)
Ist ein T-Com Server :-(( : MySQL 5.0.16-nt-log

Die Ratschläge zu MySQL5 im Forum habe ich bereits ausprobiert.

z.B. in db_mysql.inc.php

Code: Alles auswählen

mysql_query("SET SESSION sql_mode=''", $this->Link_ID);
Leider ohne Erfolg.

An die .ini Datei komme ich auch nicht ran.

Was tun?

Bis dann... ich mag jetzt nicht mehr, probier schon seit mahr als 3 Stunden rum.

Grüsse & Gute Nacht

radamazone
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Die Meldung
Table 'cpo4_block' already exists (1050)
sagt ja nur, daß es die Tabelle schon gibt.

vermutlich schlug schon mal eine Installation fehl oder wurde abgebrochen.

Also einfach mal die Datenbank leeren und erneut probieren und dabei auf die Meldungen achten... oder einfach mal einen anderen Präfix als "cpo4" benutzen, z.B. "test" :wink:

(bei mir läuft es auf einer 5.0.24a ohne Probleme)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
radamazone
ConPresso-Checker
Beiträge: 101
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal

Beitrag von radamazone »

Hallo Markus,

die Datenbank leeren funktioniert leider auch nicht. Das hatte ich auch schon mehrfach probiert. Also Datenbank geleert, anderes Prefix usw.

Ich komme einfach nicht über diesen Schritt hinaus.

Ist Dein Server auch t-Com?

Gruß

Sandra
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Nein, ich wollte nur sagen, daß es vermutlich nicht an der mySQL-Version liegt.

Es wäre jetzt hilfreich zu erfahren wie diese Meldung beim ersten Versuch lautet.
Da wird wohl kaum gemeldet, daß es die Tabelle schon gibt sonden irgendwas anderes. Daß die Existenz einer Tabelle zu dieser Fehlermeldung führt deutet ja schon mal drauf hin, daß das Anlegen von Tabellen nicht das Problem ist.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
radamazone
ConPresso-Checker
Beiträge: 101
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal

Beitrag von radamazone »

Das ist ja das verrückte, es wird sofort diese Meldung angezeigt.

Ich habe ja schon etliche Installationen durch, aber hier bin ich am verzweifeln :cry:

Kanst ja mal selbst sehen:
http://www.dete.com/_setup/
Name: 578_db_dete
Server (Port): 10.192.1.23 (3306)
Besitzer: 578_u_dete
Passwort: bertZ630

Die Daten kann ich ja danach wieder ändern.

Die Datenbank ist derzeit leer.

Gruß

Sandra
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Tja... ganz merkwürdig...

ich würde jetzt auf einem Testserver installieren und dann ein SQL-Dump auf Deinen Server überspielen. Ist aber natürlich nur eine Umgehung des Problems.
Funktioniert denn wenigstens das Anlegen von Tabellen mit der Serversoftware?

beim reloaden der Seite meldet Conresso selbst übrigens
In der Datenbank konnte keine Tabelle erstellt werden. Bitte überprüfen Sie den Datenbanknamen, das Login und das Passwort. Stellen Sie ausserdem sicher, dass es keine ConPresso-Tabellen mit demselben Prefix gibt.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
radamazone
ConPresso-Checker
Beiträge: 101
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal

Beitrag von radamazone »

In der Datenbank konnte keine Tabelle erstellt werden. Bitte überprüfen Sie den Datenbanknamen, das Login und das Passwort. Stellen Sie ausserdem sicher, dass es keine ConPresso-Tabellen mit demselben Prefix gibt.
Ja das macht er ja, weil er dann schon eine Tabelle mit dem Prefix angelegt hat. Wenn ich diese Tabelle dann lösche, meckert er dass die db.inc.php schon vorhanden ist. Also bereits das Setup durch ist. Lösche ich dann die db.inc.php und führe nach dem Löschen sämtlicher Tabellen ernaut das Setup durch, so beginnt das Spiel von Neuem.

Ich werde dem Kunden mal vorschlagen zu einem anständigen Hoster zu wechseln ;-)

Danke für Deine Mühe. Ich werds mal mit dem SQL Dump probieren.

Grüsse Sandra
radamazone
ConPresso-Checker
Beiträge: 101
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal

Problem gelöst

Beitrag von radamazone »

Hallo,

das Problem ist nun gelöst. Es lag am T-Com-Server.

Diese erlauben auf Ihren Servern keinen DROP TABLE, der aus einem Skript heraus aufgerufen wird. Deshalb Abbruch bei step2.php während der Installation.

Deshalb wurde Zeile 67 bis 74 in dieser Datei auskommentiert. Danach funzte die Installation.

Weiter haben die Sonderzeichen (nach der erfolgreichen Installation) nicht funktioniert, d.h. man konnte in einem Artikel keine Sonderzeichen erfassen und diese wurden im Frontend auch nicht angezeigt.

Lösung hier: In db_mysql.inc.php in der Funktion connect()

ALT:

Code: Alles auswählen

// connect to the database
        function connect() 
        {
            if ( 0 == $this->Link_ID ) 
            {
                $this->Link_ID=mysql_connect($this->Host, $this->User, $this->Password);
                if (!$this->Link_ID) 
                {
                    $this->halt("Link-ID == false, connect failed");
                }
                
                if (!mysql_select_db($this->Database))
                {
                    $this->halt("cannot use database ".$this->Database);
                }
            }
        }
NEU:

Code: Alles auswählen

// connect to the database
        function connect() 
        {
            if ( 0 == $this->Link_ID ) 
            {
                $this->Link_ID=mysql_connect($this->Host, $this->User, $this->Password);
                if (!$this->Link_ID) 
                {
                    $this->halt("Link-ID == false, connect failed");
                }

		//*SF* MySQL 5
		mysql_query("SET SESSION sql_mode=''", $this->Link_ID);
                
                // WebPage Profi
                mysql_query("SET NAMES 'latin1'", $this->Link_ID);
                
                if (!mysql_select_db($this->Database))
                {
                    $this->halt("cannot use database ".$this->Database);
                }
            }
        }
Ich hoffe ich habe nichts vergessen ;-)

Danke Markus für Deine Hilfe.

Grüsse Sandra
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Re: Problem gelöst

Beitrag von MarkusR »

radamazone hat geschrieben:Deshalb wurde Zeile 67 bis 74 in dieser Datei auskommentiert. Danach funzte die Installation.
Die habe ich mir jetzt mal angesehen.
Etwas heikle Konstruktion und wenn überhaupt sollte eine reine Testtabelle angelegt werden statt cpo4_block... :?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 02:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hm,

die T-Com überrascht mich immer wieder mit ihren Servern. Das bedeutet ja auch, dass man z.B. nicht per phpMyAdmin seine Tabellen verwalten kann.

Das ist dann auch der erste Anbieter, bei dem das Problem auftritt. Bis jetzt hatten wir also keinen Grund, cpo_block nicht als Testnamen zu verwenden.

Die Idee dahinter ist unter anderem zu prüfen, ob diese Tabelle schon existiert. In diesem Fall muss das Script davon ausgehen, dass auch die anderen Tabellen existieren und bricht mit einem Hinweis ab.

Es wird keine extra Testtabelle verwendet, weil diese dann evtl. unnötig da mit angelegt werden würde. Dass man sie dann nicht wieder löschen kann finde ich ehrlich gesagt übertriebenes Sicherheitsdenken.

Vermutlich wollen die T-Com-Admins verhindern, dass bei einem Fehler im Script die Tabellen gelöscht werden können (durch Angriffe von aussen) - das hilft aber nix, da in diesem Fall die Angreifer auch einfach die Daten in den Tabellen an sich löschen könnten...

Balu
Bartels.Schöne
ConPresso Support & Development