Zum Inhalt springen

Problem mit MySQL 4.1.7 beim Versionsupdate Typo3 (3.7)

Erstellt am 16. November 2004 · 19 Antworten · letzte Antwort am 27. April 2005

Tags: Datenbank, Frage

rutsch ·

Beim Update von Typo3-Version3.6.2 auf 3.7 kann ich im Install-Tool unter Database Analyser -> Update required tables -> Compare die vorgeschlagenen Änderungen nicht in die Datenbank schreiben.
z.B.:
..
Add tables
CREATE TABLE static_template (
uid int(11) unsigned DEFAULT '0' NOT NULL auto_increment,
pid int(11) unsigned DEFAULT '0' NOT NULL,
tstamp int(11) unsigned DEFAULT '0' NOT NULL,
crdate int(11) unsigned
..
..
Es wird auch keine entsprechend Meldung oder Warnung ausgegeben. Das Apache-Log (access.log) liefert mir folgendes:
"POST /typo3/install/index.php?TYPO3_INSTALL[type]=database HTTP/1.1" 200 13003
"GET /typo3/t3lib/gfx/icon_ok.gif HTTP/1.1" 304 -
"GET /typo3/t3lib/gfx/typo3logo.gif HTTP/1.1" 304 -
"GET /typo3/t3lib/gfx/icon_warning.gif HTTP/1.1" 304 -

Error.log ist ok.

Beim Versuch die Create-Anweisung über SQL im PHP-MyAdmin einzugeben, kommt folgende Meldung:
#1067 - Invalid default value for 'uid'

Dass es mit den MySQL-Versionen unter 4.0.18 Probleme gibt habe ich schon gelesen, aber ich habe die Version 4.1.7 (OS: Debian-Linux).

Kann mir jemand weiterhelfen?

Vielen Dank
Jürgen

rutsch ·

Nachtrag:

Macht bei create Table static template(
uid int(11) ..

Default '0' und autoincrement überhaupt Sinn?

Das gleiche gilt bei

Update database tables and fields:

CREATE TABLE static_tsconfig_help
ALTER TABLE pages CHANGE uid ..
ALTER TABLE pages_language_overlay CHANGE uid ..
ALTER TABLE sys_template CHANGE uid ..
ALTER TABLE tt_content CHANGE uid ..

snurf ·

:o

Leider hänge ich genauso in der Luft wie Ihr ... Irgendwie sieht es so aus, dass MySQL 4.1.7. echte Schwierigkeiten macht ... bestimmte Tabellen lassen sich einfach nicht richtig erzeugen ???

snurf ·

@rutsch

Default '0' und autoincrement überhaupt Sinn?

... wenn man das DEFAULT '0' wegläßt, funzt es -> aber wie lange? :o

King Tut ·
Obstel schrieb

hab dasselbe problem.

kann keiner helfen ?

interessant, ich habe ein ähnliches problem, aber den Fehler wo anders gesucht:

#181102

Kann mein Problem auch mit dem MySQL 4.1.7 zusammen hängen ?!

Jasmin W.​ ·

Für alle Updater hier noch ein Hinweis. In typo3_src-3.7.0/t3lib/class.t3lib_install.php bei ca. Zeile 480-490 folgende Stelle suchen:

} elseif ($theKey=='diff') {
    $statement = 'ALTER TABLE '.$table.' CHANGE '.$fN.' '.$fN.' '.$fV.';';
    $statements['change'][md5($statement)] = $statement;

suchen und direkt hinter die elsif Abfrage den Code so ändern:

} elseif ($theKey=='diff') {
    if(!strcmp($fN,'uid')) {
        if(strstr($fV,'auto_increment')) {
             $fV = eregi_replace('default '0'','',$fV);
        }
     }
    $statement = 'ALTER TABLE '.$table.' CHANGE '.$fN.' '.$fN.' '.$fV.';';
    $statements['change'][md5($statement)] = $statement;

Damit läßt sich ein Update durchführen.

rakso ·
Jasmin W. schrieb

Damit läßt sich ein Update durchführen.

Für Programmier-DAUs: Was bewirkt das?

Bei oberflächlicher Betrachtung funktioniert ja auch so alles.

Eben mal ausprobiert:

Jetzt ist noch

Changing fields
ALTER TABLE tt_content CHANGE tx_gooffotoboek_path tx_gooffotoboek_path varchar(128-) DEFAULT '' ;
Current value: varchar(128-) DEFAULT ''
ALTER TABLE tx_lzphpbb_search_wordlist CHANGE word_text word_text varchar(50) binary DEFAULT '' NOT NULL;
Current value: varchar(50) DEFAULT '' NOT NULL

übrig.

Hille ·

Hallo zusammen,
die Probleme bereitet das SQL-Scipt, dass die Tabellen anlegen will.
Einfach

default '0'

entfernen.
Ist bei auto_increment überflüssig.
Hatte auch einen Error beim Update auf die tt_news 2.0.4 mit dem index auf Feld t3ver_oid.
Habe den Text, wo der index angelegt wird aus dem SQL-Script entfernt, die Tabellen importiert,
danach über phpmyadmin den index selber gesetzt.
Läuft.
Gruß
Hille

2bbionic ·

Das Übels Ursprung ist wohl die neue mysql-Version. Die ignoriert das unsinnige "DEFAULT '0'" nicht mehr - so wie es die älteren Versionen getan haben (wie man unter dem Link oben ja auch nachlesen kann)

Andrea_Herzog ·

Hi, verzweifle auch langsam:
Ich habe brav alles gelesen, was ihr geschrieben habt. Geholfen hat alles nicht.

Hier einmal die Fehlermeldungen, die ich bekomme, wenn ich die Indexierung teste.

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 723

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:Programmeapachefriendsxampphtdocs	ypo-jkdv	ypo3	3libclass.t3lib_db.php on line 736

Und hier der Installationsstatus der Extension. Nur der Teil, in dem ich "rote" Infos bekomme. Und zwar ist alles ab ======= rot geschrieben.
Weiss jemand Rat?

Installation status:  
Type of install: Global - Global extensions (typo3/ext/) - Available for shared source on server (Dynamic).  
Double installs?   
Root files: ChangeLog
class.indexer.php
ext_conf_template.txt
ext_emconf.php
ext_icon.gif
ext_localconf.php
ext_tables.php
ext_tables.sql
ext_typoscript_editorcfg.txt
ext_typoscript_setup.txt
locallang.php  
Database requirements: Tables:
index_fulltext
index_phash
index_rel
index_words  
Database status:   
Flags: Module
Module+
Plugin
Plugin/ST43  
Config template? Yes  
TypoScript files: Setup  
Language files: locallang.php
mod/locallang_mod.php
modfunc1/locallang.php
pi/locallang.php  
Upload folder:   
Create directories:   
Module names: tools_isearch  
Class names: tx_indexedsearch_indexer
SC_mod_tools_isearch_index
tx_indexedsearch_modfunc1
tx_indexedsearch  
Errors:   
Naming errors: [exception]  
====================================
Files changed? 
A difference between the originally installed version and the current was detected!

Modified files:
class.indexer.php
ext_localconf.php
ext_tables.sql
ext_typoscript_setup.txt
CVS/Entries
CVS/Repository
CVS/Root
doc/manual.sxw
doc/CVS/Entries
doc/CVS/Repository
doc/CVS/Root
mod/index.php
mod/CVS/Entries
mod/CVS/Repository
mod/CVS/Root
modfunc1/class.tx_indexedsearch_modfunc1.php
modfunc1/CVS/Entries
modfunc1/CVS/Repository
modfunc1/CVS/Root
pi/class.tx_indexedsearch.php
pi/class.tx_indexedsearch.php~
pi/locallang.php
pi/CVS/Entries
pi/CVS/Repository
pi/CVS/Root
pi/res/CVS/Entries
pi/res/CVS/Repository
pi/res/CVS/Root
ChangeLog

Viele Grüße
Andrea

Hille ·

Hi,
schmeiß doch mal die ext nochmal rauß.
Installier noch mal neu, bis zum Punkt, wo die Datenbank eingespielt werden soll.
Hier abbrechen und in PHPMyAdmin im SQL-Fenster diesen Code eingeben: (tt_news 2.0.4)

CREATE TABLE `tt_news` (
  `uid` int(11) unsigned NOT NULL auto_increment,
  `pid` int(11) NOT NULL default '0',
  `tstamp` int(11) unsigned NOT NULL default '0',
  `crdate` int(11) unsigned NOT NULL default '0',
  `deleted` tinyint(3) unsigned NOT NULL default '0',
  `hidden` tinyint(4) unsigned NOT NULL default '0',
  `starttime` int(11) unsigned NOT NULL default '0',
  `endtime` int(11) unsigned NOT NULL default '0',
  `fe_group` int(11) unsigned NOT NULL default '0',
  `title` tinytext NOT NULL,
  `datetime` int(11) unsigned NOT NULL default '0',
  `image` tinyblob NOT NULL,
  `imagecaption` text NOT NULL,
  `related` int(11) NOT NULL default '0',
  `short` text NOT NULL,
  `bodytext` mediumtext NOT NULL,
  `author` tinytext NOT NULL,
  `author_email` tinytext NOT NULL,
  `category` int(11) NOT NULL default '0',
  `news_files` tinyblob NOT NULL,
  `links` text NOT NULL,
  `type` tinyint(4) NOT NULL default '0',
  `page` int(11) NOT NULL default '0',
  `keywords` text NOT NULL,
  `archivedate` int(11) NOT NULL default '0',
  `ext_url` tinytext NOT NULL,
  `sys_language_uid` int(11) NOT NULL default '0',
  `l18n_parent` int(11) NOT NULL default '0',
  `l18n_diffsource` mediumblob NOT NULL,
  `t3ver_oid` int(11) unsigned NOT NULL default '0',
  `t3ver_id` int(11) unsigned NOT NULL default '0',
  `t3ver_label` varchar(30) NOT NULL default '',
  PRIMARY KEY  (`uid`),
  KEY `parent` (`pid`),
  KEY `t3ver_oid` (`t3ver_oid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

CREATE TABLE `tt_news_cat` (
  `uid` int(11) unsigned NOT NULL auto_increment,
  `pid` int(11) unsigned NOT NULL default '0',
  `tstamp` int(11) unsigned NOT NULL default '0',
  `crdate` int(11) unsigned NOT NULL default '0',
  `title` tinytext NOT NULL,
  `title_lang_ol` tinytext NOT NULL,
  `image` tinyblob NOT NULL,
  `shortcut` int(11) unsigned NOT NULL default '0',
  `shortcut_target` tinytext NOT NULL,
  `deleted` tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (`uid`),
  KEY `parent` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE `tt_news_cat_mm` (
  `uid_local` int(11) unsigned NOT NULL default '0',
  `uid_foreign` int(11) unsigned NOT NULL default '0',
  `tablenames` varchar(30) NOT NULL default '',
  `sorting` int(11) unsigned NOT NULL default '0',
  KEY `uid_local` (`uid_local`),
  KEY `uid_foreign` (`uid_foreign`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE `tt_news_related_mm` (
  `uid_local` int(11) unsigned NOT NULL default '0',
  `uid_foreign` int(11) unsigned NOT NULL default '0',
  `sorting` int(11) unsigned NOT NULL default '0',
  KEY `uid_local` (`uid_local`),
  KEY `uid_foreign` (`uid_foreign`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Oder diesen als ext_tables.sql in der EXT abspeichern, und die Ext nochmal aktivieren.

Das Alter Table danach einfach ignorieren.
Gruß
Hille

Andrea_Herzog ·

Hi Hille,
vielen Dank für deine Antwort. Aber ich bin leider ein Dau, was diese Angelegenheit angeht.
Kannst du mir genau sagen, was ich wo tun muss?
Viele haben ja das gleiche Problem.

Verstanden habe ich:

1. Extension deinstallieren
2. nochmals installieren, bis die "Create table" erscheint,
und dort abbrechen.

Jetzt kommt´s:
Was muss ich wo und wie genau machen?
Ich bin etwas überfordert.

Im voraus heißen Dank für die Hilfe.

Viele Grüße
Andrea

Hille ·

Hi,
der 1.Schritt ist nun getan.

Auf der linken Seite kannst Du phpmyadmin (Verwaltungstool für Deine MySQL-Datenbanken) aufrufen.

ACHTUNG! Du greift jetzt in den Motorraum von Typo3 #paralyzed#

Nun mußt Du rechts den Link "SQL" sehen.
In dem Eingabefeld ( SQL-Befehl(e) in Datenbank ...) dann das SQL-Script, was ich oben gepostet hab, eingeben und unten auf "OK" clicken.
Danach sollten die Datenbanktabellen korrekt angelegt sein.

Dann kannst Du über den EXT-Manager die EXT aktivieren / installieren.
Sollte dann auch klappen. #giggle#

Hille

stefan72 ·

Hallo,

Ich hatte ebenfalls obenstehendes Problem mit MySQL 4.1.10a auf Hostpoint Servern. Habe dann das class.t3lib_install.php file vom CVS gezogen, damit ging es dann. Die .diff files auf bugs.typo3.org funktionierten bei mir nur ungenügend mit dem 'patch' tool (GNU).

Stefan Kaufmann

Chip ·
stefan72 schrieb

Ich hatte ebenfalls obenstehendes Problem mit MySQL 4.1.10a auf Hostpoint Servern. Habe dann das class.t3lib_install.php file vom CVS gezogen, damit ging es dann. Die .diff files auf bugs.typo3.org funktionierten bei mir nur ungenügend mit dem 'patch' tool (GNU).

Die CVS Version von da als Du geschrieben hast ist ok, aber die aktuelle sollte im Moment wegen eines kleinen Problems grad nicht eingesetzt werden.
3.8.0beta2 enthält einen Hotfix und funktioniert prima (habs ebenfalls bei Hostpoint getestet).