Kleine Stolpersteine: Fehlermeldung wegen MAX_JOIN_SIZE rows
Wenn man - wie es bei Hosting-Paketen- in der Regel der Fall ist - die Datenbank nicht selbst konfigurieren kann, dann kann man relativ schnell in diese Fehlermeldung laufen.
Syntax error or access violation: 1104 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
Im Netz kursieren verschiedene Vorschläge, wie man in den Drupal-Scripten die entsprechende Datenbank-SystemVariable 'sql big selects' auf ON setzen kann.
Die Vorschläge sehen in der Regel vor, daß man die Core-Datei mit den Datenbankfunktionen überschreiben soll.
Das ist aber keine gute Idee, weil diese Änderung bei jedem künftigen Versions-Upgrade verloren geht.
Besser ist folgender Vorschlag, den wir inzwischen bei allen größeren Projekten einsetzen:
Man ruft die Datei settings.php auf (vorher Schreibschutz entfernen) und sucht dort die Einstellungen für den Datenbank-Connect:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'name_der_datenbank', 'username' => 'name_des_datenbank_users', 'password' => 'datenbank_passwort', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), );
Die Anweisung ergänzt man, so daß nun folgender Code dort steht:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'name_der_datenbank', 'username' => 'name_des_datenbank_users', 'password' => 'datenbank_passwort', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', 'init_commands' => array( 'big_selects' => 'SET SQL_BIG_SELECTS=1', ), ), ), );
Natürlich können auf dem Weg auch andere MySQL Variablen gesetzt werden.
Wer sich in das Thema vertiefen möchte, findet in der API Details dazu:
https://api.drupal.org/api/drupal/includes!database!mysql!database.inc/…