SQL Error nach dem Einspielen eines Backups

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
vossy
Beiträge: 63
Registriert: 14. Apr 2008, 13:57

SQL Error nach dem Einspielen eines Backups

Beitrag von vossy »

Hallo,
nach dem einspielen eines Backups (alles Version 2.1.7) kommt beim Anzeigen der Listen folgende Fehlermeldung
S Q L - E R R O R

CODE: 1104

The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay

B A C K T R A C E


FILE: adm_program/system/db/mysql.php
LINE: 193
CALL: DB->db_error()

FILE: adm_program/system/db/mysql.php
LINE: 77
CALL: MySqlDB->db_error()

FILE: adm_program/modules/lists/lists_show.php
LINE: 166
CALL: MySqlDB->query()
Wenn ich eine eigene Liste erstelle mit max 5 Spalten funktioniert es, sobald es mehr werden kommt die Meldung. Für sachdienliche Hinweise wäre ich dankbar.
Benutzeravatar
fasse
Administrator
Beiträge: 6167
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

hmm, wurde bei dir eine neue Datenbank eingespielt ?
Das Problem ist weniger das Backup, als wohl neue Einstellungen bei der Datenbank. Hier sind wohl größere Joins nicht mehr erlaubt.

Probier mal bitte folgendes aus:

öffne mal die Datei adm_program/system/db/mysql.php und ersetzte dort folgenden Zeilen 28ff:

Code: Alles auswählen

        if($this->connect_id)
        {
            if (@mysql_select_db($this->dbname, $this->connect_id))
            {
                // MySql-Server-Version ermitteln und schauen, ob es UNICODE unterstuetzt
                $this->version = mysql_get_server_info($this->connect_id);

                if (version_compare($this->version, '4.1.3', '>='))
                {
                    $this->utf8 = true;
                    @mysql_query("SET NAMES 'utf8'", $this->connect_id);
                }

                return $this->connect_id;
            }
        }
        return false;
durch folgende:

Code: Alles auswählen

        if($this->connect_id)
        {
            if (@mysql_select_db($this->dbname, $this->connect_id))
            {
                // MySql-Server-Version ermitteln und schauen, ob es UNICODE unterstuetzt
                $this->version = mysql_get_server_info($this->connect_id);

                if (version_compare($this->version, '4.1.3', '>='))
                {
                    $this->utf8 = true;
                    @mysql_query("SET NAMES 'utf8'", $this->connect_id);
                }
                @mysql_query("SET SQL_BIG_SELECTS=1", $this->connect_id);

                return $this->connect_id;
            }
        }
        return false;
Gruß
Fasse
vossy
Beiträge: 63
Registriert: 14. Apr 2008, 13:57

Beitrag von vossy »

Danke, das war es!

Ja, die scheinen bei Hosteurope eine neue MYSQL Version aufgespielt zu haben (PHP 5.2.12 und MySQL Server 5.1.47). Daraus scheint noch ein neues Problem erwachsen zu sein (s. neuer Thread)
Benutzeravatar
fasse
Administrator
Beiträge: 6167
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Dann werden wir diesen Codeschnipsel mal in unseren Standard einbauen.

Gruß
Fasse
Antworten