см. Страницу документа PHP:
http://www.php.net/manual/en/mysqli.real-connect.php
пример # 1
РЕДАКТИРОВАТЬ 1
, как только вы подключитесь к MySQLклиент получает «баннер», где сервер объявляет свою версию и другие вещи.
«В Linux параметр [mysql.connect_timeout] также используется для ожидания первого ответа от сервера».означает, что клиент ожидает этого «сообщения баннера», используя тот же тайм-аут соединения.
в моем тесте я установил тайм-аут в 4 секунды (см. 4000 в опросе):
connect(3, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
fcntl64(3, F_SETFL, O_RDWR) = 0
poll([{fd=3, events=POLLIN|POLLPRI}], 1, **4000**) = 1 ([{fd=3, revents=POLLIN}])
setsockopt(3, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
setsockopt(3, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
setsockopt(3, SOL_IP, IP_TOS, [8], 4) = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
poll([{fd=3, events=POLLIN}], 1, **4000**) = 1 ([{fd=3, revents=POLLIN}])
read(3, "4\0\0\0\n5.1.55"..., 16384) = 56
Мой сервер версии 5.1.55
Вкратце: connection_timeout не связан с каким-либо таймаутом в запросах