Как подключиться к MySQL из KPHP?

Добрый день!
Задача: Из скомпилированного KPHP сервера подключиться к MySQL.

Судя по логу каждый скомпилированный сервер KPHP после запуска пытается соединиться через сокеты с MySQL сервером. Соединение открывается только на localhost:3306 и как я понял эту настройку не изменить.
В функционале KPHP нет возможности указать ни базу к которой нужно подключаться ни пользователя ни пароль. В лог выпадает такая ошибка:
Creating NEW connection to 127.0.0.1:3306
[2014-04-30 17:31:41.764867 local] <5 send buffer was 16384, now 16777216
[2014-04-30 17:31:41.764935 local] >5 receive buffer was 87380, now 16777216
[2014-04-30 17:31:41.765071 local] Created new outbound connection 127.0.0.1:49686 -> 127.0.0.1:3306
[2014-04-30 17:31:41.765123 local] epoll_ctl(3,1,5,5,8000201e)
outbound connection: handle 5 to 127.0.0.1:3306
Creating NEW connection to 127.0.0.1:3306
[2014-04-30 17:31:41.765189 local] <6 send buffer was 16384, now 16777216
[2014-04-30 17:31:41.765218 local] >6 receive buffer was 87380, now 16777216
[2014-04-30 17:31:41.765499 local] Created new outbound connection 127.0.0.1:49687 -> 127.0.0.1:3306
[2014-04-30 17:31:41.765553 local] epoll_ctl(3,1,6,6,8000201e)
outbound connection: handle 6 to 127.0.0.1:3306
[2014-04-30 17:31:41.765608 local] epoll_wait(3, ...) = 2
[2014-04-30 17:31:41.765636 local] epoll_runqueue: 2 events
[2014-04-30 17:31:41.765660 local] BEGIN processing connection 5, status=6, flags=2, pending=0; epoll_ready=4, ev->ready=2
[2014-04-30 17:31:41.765684 local] socket #5 to 127.0.0.1:3306 becomes active
[2014-04-30 17:31:41.765768 local] socket #5: ready=3
recv() from 5: 95 read out of 2048 at 0xb24a6a0 ([)
sqlc_parse_execute(5), status=10, bytes=95, packet_state=0, packet_len=0
client packet ready: len=91, seq_num=0
server_auth_packet received, len=91
server_auth_packet has incorrect size
[2014-04-30 17:31:41.765894 local] server_reader=-1, ready=02, state=23
[2014-04-30 17:31:41.765944 local] socket 5: closing and cleaning (error code=-1)
[2014-04-30 17:31:41.766109 local] BEGIN processing connection 6, status=6, flags=2, pending=0; epoll_ready=4, ev->ready=2
[2014-04-30 17:31:41.766164 local] socket #6 to 127.0.0.1:3306 becomes active
[2014-04-30 17:31:41.766187 local] socket #6: ready=3
recv() from 6: 95 read out of 2048 at 0xb24b970 ([)
sqlc_parse_execute(6), status=10, bytes=95, packet_state=0, packet_len=0
client packet ready: len=91, seq_num=0
server_auth_packet received, len=91
server_auth_packet has incorrect size
[2014-04-30 17:31:41.766300 local] server_reader=-1, ready=02, state=23
[2014-04-30 17:31:41.766323 local] socket 6: closing and cleaning (error code=-1)


Насколько я понял, KPHP ожидает какой-то другой ответ от сервера MySQL.

В комплекте kphp/kdb есть утилита db-proxy. Так как KPHP ходит только на 3306, сервер MySQL я перевесил на 3307, а db-proxy запустил 3306.

Соединение между KPHP и db-proxy устанавливается успешно, но db-proxy в свою очередь при попытке подключится к MySQL на 3307 выдает ровно ту же ошибку, что и KPHP, когда пытался установить соединение напрямую.

Собственно, вопрос, как установить MySQL подключение из KPHP?
Спасибо.
  • Вопрос задан
  • 2873 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы