pvpgn 1.8.5 & mysql 5.0.77
Добавлено: 2009-04-20 8:35:04
Проблема заключается в том, что pvpgn не успевает подключится к серверу mysql т.к. не успевает загрузится mysql.
rc.d отвергаем сразу
Открыл исходники
вот описан реконект mysql у меня mysql-server-5.0.77_1, возможность MYSQL_OPT_RECONNECT поддерживает.
в логах вижу
Теперь вопрос, скажите как подправить исходный код, что бы работал реконект, по логам видно что он не отрабатывается.
Не программист, скажите куда копать ... сам доделаю.
Пока думаю добавить while
rc.d отвергаем сразу
Вот задался я вопросом, в mysql же есть реконнект.# rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
...
/etc/rc.d/LOGIN
/usr/local/etc/rc.d/viperhive
/usr/local/etc/rc.d/rsyncd
/usr/local/etc/rc.d/mysql-server
/usr/local/etc/rc.d/lighttpd
/usr/local/etc/rc.d/bnetd -< pvpgn
...
Открыл исходники
Код: Выделить всё
#if MYSQL_VERSION_ID >= 50003
#if MYSQL_VERSION_ID < 50013
eventlog(eventlog_level_warn,__FUNCTION__,"Your mySQL client lib version does not support reconnecting after a timeout.");
eventlog(eventlog_level_warn,__FUNCTION__,"If this causes you any trouble you are advices to upgrade");
eventlog(eventlog_level_warn,__FUNCTION__,"your mySQL client libs to at least mySQL 5.0.13 to resolve this problem.");
// we might try a dirty hack like the following, but I'm not sure if it will work
// mysql->reconnect = 1;
#endif
#if MYSQL_VERSION_ID >= 50019
my_bool my_true = (my_bool)1;
if (mysql_options(mysql, MYSQL_OPT_RECONNECT, &my_true)){
eventlog(eventlog_level_warn,__FUNCTION__,"Failed to turn on MYSQL_OPT_RECONNECT.");
}else{
eventlog(eventlog_level_info,__FUNCTION__,"Successfully turned on MYSQL_OPT_RECONNECT.");
}
#endif
#endif
if (mysql_real_connect(mysql, host, user, pass, name, port ? atoi(port) : 0, socket, CLIENT_FOUND_ROWS) == NULL) {
eventlog(eventlog_level_error, __FUNCTION__, "error connecting to database (db said: '%s')", mysql_error(mysql));
mysql_close(mysql);
return -1;
}
#if MYSQL_VERSION_ID >= 50013
#if MYSQL_VERSION_ID < 50019
my_bool my_true = (my_bool)1;
if (mysql_options(mysql, MYSQL_OPT_RECONNECT, &my_true)){
eventlog(eventlog_level_warn,__FUNCTION__,"Failed to turn on MYSQL_OPT_RECONNECT.");
}else{
eventlog(eventlog_level_info,__FUNCTION__,"Successfully turned on MYSQL_OPT_RECONNECT.");
}
#endif
#endif
в логах вижу
Код: Выделить всё
Apr 19 22:54:49 [info ] sql_mysql_init: Successfully turned on MYSQL_OPT_RECONNECT.
Apr 19 22:54:49 [error] sql_mysql_init: error connecting to database (db said: 'Can't connect to MySQL server on '127.0.0.1' (61)')
Apr 19 22:54:49 [error] sql_init: got error init db
Apr 19 22:54:49 [error] pre_server_startup: storage init failed
Не программист, скажите куда копать ... сам доделаю.
Пока думаю добавить while