Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[NG] SQL Error: 1062 - Duplicate entry 'bot=1' for key 'PRIMARY'
#1
Hallo,

seit Mai bekommt der Googlebot in meinem Forum einen Serverfehler mit einem SQL Problem:

Code:
<error>
<dateline>1541571669</dateline>

<script></script>
<line>0</line>
<type>20</type>
<friendly_type>MyBB SQL Error</friendly_type>
<message>SQL Error: 1062 - Duplicate entry 'bot=1' for key 'PRIMARY'
Query: REPLACE INTO mybb_sessions SET `sid`='bot=1',`time`=1541571669,`ip`=X'42f94506',`location`='/forum/index.php?',`useragent`='Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',`location1`=0,`location2`=0,`nopermission`=0</message>
</error>

So ein ähnliches Problem gab es vor 10 Jahren schonmal https://community.mybb.com/archive/index...38222.html
und dort wurde ein Insert zu einem Replace gemacht. Bei mir gibt es das Replace, scheint aber nicht zu helfen.

Ich hatte das Forum im Mai auf die 1.8.15 geupdated und jetzt auf die 1.8.19, aber das hat keinen Unterschied gemacht.
Ich habe die mybb_sessions Tabelle geleert und die Symtome waren behoben. Aber google bekommt auf immer noch 500 von 20000 URLs den Serverfehler. Das kann ich nicht nachstellen. Einfach nur den Useragent auf den Bot zu setzen reicht nicht.

Ich habe mir die Herangehensweise in der class_sessions.php angeschaut. Wenn ich das richtig verstehe bekommen alle Googlebotinstanzen die gleiche Session-ID. Dort wird in create_session() aber alle vorherigen Sessions dieses Users wieder beendet. Google kommt mit mehreren Bots gleichzeitig und damit machen die sich gegenseitig die Sessions kaputt.

Kann man google gleich ohne Session und Cookie bedienen? Dann bekommt der Bot die Seitenstandards und das ist gut so. Es spart Last auf dem Server und senkt die Komplexität.

Könnt ihr mir helfen?
Zitieren
#2
Ein REPLACE INTO sorgt eigentlich dafür, dass genau dieser Fehler gar nicht auftreten kann. Da es bei niemand anderem ähnliche Probleme gibt, würde ich einen Bug ausschließen und auf ein lokales Problem mit dem MySQL-Server tippen. Falls eine ältere MySQL-Version eingesetzt wird, wäre auch ein (möglicherweise längst behobener) Bug in MySQL denkbar.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren