Installationsproblem mit mySQL 5.0.2, falsche SQL-Statement |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Installationsproblem mit mySQL 5.0.2, falsche SQL-Statement |
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 |
|
|
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.
|
|
|
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() { ... wer Spaß daran hat SF mal zu debuggen kann ja mal die eingefügte Zeile nach 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'"); } 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! |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
Thu. 24. January 2008, 00:11
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
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: 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.
|
|
|
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 |
|
|
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 Gruß |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 23.4.24 - 14:02 |