PDA

Просмотр полной версии : Reconnection to MySQL server


Vinolentus
10.05.2011, 16:55
https://gist.github.com/964488

Умеет:
- пересоздавать соединения с сервером;
- кое-как восстанавливать prepared statements;
- сливать в бд все, что было поставлено в очередь за время, пока соединение отсутствовало.

KiriX
10.05.2011, 17:21
Последнее, мне кажется, очень вредно =)...

Vinolentus
10.05.2011, 20:00
Последнее, мне кажется, очень вредно ...Почему? Если мы что-то сохраняем в момент отсутствия соединения, мы должны терять это? Прогресс персонажа, например.

KiriX
11.05.2011, 11:02
в общем-то да, я что-то не о том подумал =)

odvolk
07.06.2012, 09:04
перезалейте пожалуйста ;)

partizanes
19.06.2012, 21:44
патч топикстартера не видел,

найдено на старом форуме http://old.ru-mangos.ru/mangos.ru/forum/showthreadfa55.html?t=10175

ReFresh:

Index: src/shared/Database/DatabaseMysql.cpp
================================================== =================
--- src/shared/Database/DatabaseMysql.cpp (revision 4593)
+++ src/shared/Database/DatabaseMysql.cpp (working copy)
@@ -155,6 +155,22 @@
sLog.outDetail("AUTOCOMMIT NOT SET TO 0");
}
/*-------------------------------------*/
+#if MYSQL_VERSION_ID >= 50003
+// #if MYSQL_VERSIOB_ID >= 50013
+ my_bool my_true = (my_bool)1;
+ if (mysql_options(mMysql, MYSQL_OPT_RECONNECT, &my_true))
+ {
+ sLog.outDetail("Failed to turn on MYSQL_OPT_RECONNECT.");
+ }
+ else
+ {
+ sLog.outDetail("Successfully turned on MYSQL_OPT_RECONNECT.");
+ }
+#else
+ sLog.outDetail("Your mySQL client lib version does not support reconnecting after a timeout.");
+ sLog.outDetail("If this causes you any trouble we advice you to upgrade");
+ sLog.outDetail("your mySQL client libs to at least mySQL 5.0.13 to resolve this problem.");
+#endif
return true;
}
else

и вариант2
ddayver:
У меня просто дописано mysql_options(mMysql, MYSQL_OPT_RECONNECT, &my_true)