Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Installationsproblem mit mySQL 5.0.2, falsche SQL-Statement
Chregu
Beitrag Mon. 9. July 2007, 20:07
Beitrag #1


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



Hallo Zusammen

Ich habe heute gerade Sefrengo mit mySQL 5.0.2 installiert bzw. versucht. Es gibt dabei einige Probleme mit den SQL-Statements aus dem Setupordner.
Die Tabellen konnten alle angelegt werden. Mit den Einträgen bei der Modul- sowie Value-Tabelle gabe es probleme. Auto_increment akzeptiert '' nicht sondern erwarter NULL.
Kann das Jemand bestätigen bzw. hat jemand damit bereits Erfahrungen gemacht?

Gruss
Chris
Go to the top of the page
 
+Quote Post
smail
Beitrag Mon. 9. July 2007, 23:31
Beitrag #2


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



ZITAT
Ich habe heute gerade Sefrengo mit mySQL 5.0.2 installiert bzw. versucht. Es gibt dabei einige Probleme mit den SQL-Statements aus dem Setupordner.


Einige der sql-Statements aus der scheinen auch bei mir Probleme zu verursachen, wenn Mysql im strict-mode läuft (das meinte zumindest der T-Com Support, der mir derzeit bei dem ini_set-Problem weiterhilft. Die Folge war bei mir, dass zwar die Tabellen angelegt werden konnten, sie jedoch alle leer blieben.

Dort läuft Mysql in der Version MySQL 5.0.16-nt (wobei ich nicht weiß, was das nt bedeutet).


Fehlerursache laut support, ich zitiere:
ZITAT
#Es wird laut Error-Log versucht in der Tabelle prefix_session,
# in der Spalte 'user_id' vom Typ Integer, Text zu speichern.
# Unsere Datenbank läuft im Strict-Mode, was zur Folge hat,
# dass überprüft wird, ob SQL-Anweisungen SQL-konform sind. In diesem Fall
# ist die Anweisung nicht SQL-konform.
# MySQL-Error: (Out of range value adjusted for column 'user_id' at row 1)


Vielleicht hängt Dein Problem ja auch damit zusammen??!?

Edit: ich weiß leider nicht genau, welche Datei davon betroffen ist...

Gruß
Jan


--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post
STam
Beitrag Tue. 10. July 2007, 10:44
Beitrag #3


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 541
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 8



Hi,

es gibt seit MySQL 4.0 die Möglichkeit das Verhalten von MySQL beim Umgang mit Anfragen über die Systemvariable sql_mode zu steuern.
Bei MySQL 4.0 musste dies bei der Konfiguration des Servers noch fest eingebunden werden.
Seit MySQL 4.1.1 kann der sql_mode auch zur Laufzeit geändert werden. Mit MySQL 5.0.2 wurde der sql_mode STRICT_TRANS_TABLES
als Standardwert eingestellt.

Was macht dieser STRICT_TRANS_TABLES-Modus?
Nun, er sorgt dafür, dass MySQL die ihm übergebenen Daten sorgfältig überprüft und bei Fehlern die weitere Verarbeitung des ihm übergebenen Aufrufes abbricht.
Ein Fehler könnte z.B. sein, wenn versucht wird einen String in ein als integer deklariertes Feld zu speichern.
Ohne Strict-Mode wandelt MySQL den String in eine "0" um und speichert diesen Wert ab. Im Strict-Mode hingegen bricht MySQL die Anfrage mit einem Fehler ab.
Dies betrifft u.a. auch als NOT_NULL deklarierte Felder in denen ein Wert erwartet wird. Bei SF <= 1.4 sind die meisten Felder als NOT_NULL deklariert,
was im erwähnten STRICT MODE zu Fehlern führt. Außerdem sind viele Übergabeparameter als String maskiert was eigentlich als eine vorbeugende Maßnahme
zum Schutz vor Mysql-Injections gedacht ist.

Die Lösung liegt im abschalten des STRICT MODE. Dies kann mit dieser Änderung erreicht werden (File: /backend/external/phplib/local.php:
QUELLTEXT
function DB_cms() {
        global $cfg_cms;

        $this->Host = $cfg_cms['db_host'];
        $this->Database = $cfg_cms['db_database'];
        $this->User = $cfg_cms['db_user'];
        $this->Password = $cfg_cms['db_password'];
        $this->PConnect = $cfg_cms['db_mysql_pconnect'];
        parent::DB_Sql("SET sql_mode = 'MYSQL40'");
}
... wer Spaß daran hat SF mal zu debuggen kann ja mal die eingefügte Zeile nach
QUELLTEXT
parent::DB_Sql("SET sql_mode = 'TRADITIONAL'");
ändern.
Referenz: Mysql-Server sql_mode
ZITAT
(Quelle: MySQL - The definitive guide to using, programming, and administrating MySQL 4.1 and 5.0 (ISBN: 0-672-32673-6))
Dieses Buch betrachtet MySQL nur bis Version 4.1.9 und 5.0.3


Achtung dieser Befehl ist grundsätzlich nicht für alle SF-Installationen (beachte Mysql-Version) gedacht sondern nur in diesem Fall anzuwenden!

Gruß

P.S.: habs zwar getestet gebe aber keine Garantie ob das auf deinem Server auch erlaubt ist zu ändern!
Go to the top of the page
 
+Quote Post
Chregu
Beitrag Tue. 10. July 2007, 10:56
Beitrag #4


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



@STam

Danke für deine Ausführungen. Habe es gerade Versucht zu ändern. Jedoch ohne erfolg.
Es scheint als wäre es nicht erlaubt das ding zu ändern.

Habe bereits mit dem Hoster kontakt aufgenommen. Nun wird der Space auf eine andere
Serverumgebung gezügelt auf der es bereits Sefrengo Installation gibt.

Nochmals vielen Dank für deine Hilfe.

Gruss
Chris
Go to the top of the page
 
+Quote Post
Chregu
Beitrag Thu. 6. December 2007, 12:04
Beitrag #5


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



Hallo Zusammen

Stehe wieder vor dem selben Problem. Dieser Hack von STAM hat bei mir nicht funktioniert.
Hat jemand eine andere Lösung? Bzw. läuft bei jemandem Sefrengo mit mySQL5.

Evtl. gilt diese Einstellung jedoch nicht für die Installation und würde ansonsten funktionieren.
Diese Schlussfolgerung führt zur frage, was ich an der Installation ändern müsste.

Besten Dank für euer Feedback.

gruss
chregu
Go to the top of the page
 
+Quote Post
STam
Beitrag Wed. 23. January 2008, 12:56
Beitrag #6


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 541
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 8



Vieleicht mal direkt in der Mysql 'my.cnf' versuchen zu setzen:
QUELLTEXT
sql_mode ="MYSQL40"


Gruss
Go to the top of the page
 
+Quote Post
Chregu
Beitrag Wed. 23. January 2008, 14:12
Beitrag #7


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



Danke für die Hilfe.
Habe jedoch beim Hoster nun doch noch eine mySQL 4 Instanz bekommen :-)

Gruss
chregu
Go to the top of the page
 
+Quote Post
smail
Beitrag Thu. 24. January 2008, 00:11
Beitrag #8


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



ZITAT(Chregu @ Thu. 6. December 2007, 12:04) *
Bzw. läuft bei jemandem Sefrengo mit mySQL5.


Ja, bei mir läuft MySql in Version 5.0.45 zusammen mit php 4.4.7.

Hier die phpinfo: Angehängte Datei  phpinfo.pdf ( 71.14KB ) Anzahl der Downloads: 8


Gruß
Jan


--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post
gunwalt
Beitrag Thu. 24. January 2008, 08:24
Beitrag #9


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 1.126
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 7



PHP Version 5.24, MySQL 5.0.45 ohne Probleme. Allerdings nicht neu installiert sondern DB gesichert, DB geändert und neu hochgeladen.


--------------------
------
Ich gehe spazieren durch Gelsenkirchen
Go to the top of the page
 
+Quote Post
STam
Beitrag Mon. 11. February 2008, 17:25
Beitrag #10


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 541
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 8



Du könntest auch einfach versuchen das Feld (also die Spalte 'user_id') selbst zu ändern:
QUELLTEXT
ALTER TABLE `cms_sessions` CHANGE `user_id` `user_id` VARCHAR( 14 ) DEFAULT '0'
...
mit dem phpMyAdmin oder ähnlichem Tool absetzen und gut ist!
Das ist die beste Lösung und ist eigentlich ein uralter Bug, den man aber erst bemerkt wenn man Mysql5 benutzt wink.gif

Gruß
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 23.4.24 - 14:02

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.