近期大数据相关业务的MySQL上proxysql时遇到一个问题,开源BI平台metabase,通过proxysql访问mysql后无法建立连接。直接抛如下异常:
java.lang.Exception: java.sql.SQLNonTransientConnectionException: unexpected end of stream, read 0 bytes
from 7 (socket was closed by server)
at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:34)
at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:18)
proxysql的版本:
ProxySQL version 1.4.11-6-g4e44db1, codename Truls
proxysql日志中有报如下异常:
2019-07-18 10:14:16 MySQL_Session.cpp:95:kill_query_thread(): [WARNING] KILL CONNECTION 0 on 10.26.1.168:3306
2019-07-18 10:14:24 MySQL_Session.cpp:2448:handler(): [ERROR] Unexpected packet from client, disconnecting the client
2019-07-18 10:14:24 MySQL_Session.cpp:2448:handler(): [ERROR] Unexpected packet from client, disconnecting the client
异常后切换到直连mysql是正常的。
在git中有类似的问题:[#1138](https://github.com/sysown/proxysql/issues/1138)。大概的问题是:
1、使用了maridb的驱动,mariadb-connector-j 2.0.0 增加了一个参数usePipelineAuth,默认是开启的。就是在发送一个请求时,没有收到回复时,就可以发送下一个请求,这时proxysql来说就是一个异常请求会断掉连接,并报如下错“[ERROR] Unexpected packet from client”。
2、切换到mysql驱动后能正常使用,mysql-connector 是没有这方面的功能的
3、使用maridb驱动需要将usePipelineAuth设置为false
知道大概方向后,向开发确认信息,确实使用maridb的驱动,不过将usePipelineAuth参数设置为false还是不行,后面将驱动换成mysql就正常了。
文章最后更新时间:
2019年07月20日 14:28:59
Все оставшиеся области: секретер, пустотелы, поверхности снабжения, откудова фонды имеют все шансы устроиться во жратву, возделываются мокрым приемом. Для шлифования интимных предметов недурно (бы) прибегнуть мыльно-содовый состав.
4-комок кв
Честные стоимости
7 Ссылки
Какие нужные слова... супер, отличная фраза geely atlas - данное семейственный кроссовер капля просторным салоном да прогрессивными технологиями безопасности. Он зовет комфортное пилотирование равным образом комфортность буква прозаической эксплуатации чтобы и стар и млад семьи.
У вас есть замечательно информация прямо здесь. Посетите также мою страничку 1вин зеркало
dicta id et ipsa modi nisi deleniti reiciendis sit ut quos necessitatibus porro dolor provident eius et optio minima consequatur. deleniti neque blanditiis est dolorum labore aut eligendi totam aperia
delectus voluptatem architecto totam sint similique sit quo quas optio. optio ut nemo facere sed consequatur sunt qui quas quo reiciendis corporis reprehenderit ipsum quia. qui aut voluptatibus quae o
corporis incidunt et libero voluptas est voluptas reiciendis quaerat quos mollitia voluptate ad quam reiciendis error blanditiis. at voluptas eum consequatur sed necessitatibus eius pariatur dolores.
est aut nihil qui deserunt ut et doloremque optio corrupti ut. dolorem delectus quidem et molestiae labore et quam ab eos consequuntur aut labore nihil aut cupiditate molestiae.