MySQL Proxy, ferramenta para optimización do funcionamento de MySQL

http://www.mancomun.org/images/stories/mysql_proxy.jpgMySQL Proxy é un programa que se sitúa entre o cliente e o servidor de MySQL que permite controlar, analizar e/ou transformar a comunicación. O cliente de MySQL conéctase ao proxy, en vez de ao servidor, coas credenciais usuais e o proxy actúa como un “home no medio” (Man in the middle).

 

MySQL Proxy permite realizar un número ilimitado de usos comúns son: balanceo de carga, tolerancia a erros, análise das consultas; filtrado das consultas e/ou modificacións, e moitas funcionalidades máis que poden ser programadas.

  • Balanceo de carga: por exemplo se queremos tirar de certas consultas máis lentas noutra máquina que ten unha replica da base de datos.

  • Failover: supoñamos que o servidor de base de datos â??cáeseâ?, podemos realizar unha copia ao â??vooâ? das peticións e almacenalas para o seu posterior uso.
  • Análise de peticións: porque non analizar que tipo de peticións fanse comunmente dunha forma máis â??transparenteâ? sen necesidade de tocar o noso servidor de â??produciónâ?, así por exemplo analizar tempos de resposta, realizar estatísticas xerais, etc.
  • Filtrado de peticións: Podemos crear un filtro de seguridade para certas peticións que non desexamos; que por exemplo certas máquinas realicen cara a MySQL, ou algún tipo de filtro de seguridade que examine peticións potencialmente perigosas (inxección de instruccións, escape á shell para executar comandos, insercións en certas táboas, …)
  • Modificación: Do mesmo xeito que o filtro anterior, podemos determinar que peticións non queremos e polo tanto modificalas â??ao vooâ?. Un divertido exemplo seria filtrar unha consulta á táboa â??passwordâ? entregando un hash incorrecto, para que os potenciais atacantes se de golpes na cabeza pensando porque se estando crackeada a contrasinal non funciona.

MySQL Proxy vén co linguaxe de programación Lua embebido que se pode empregar na programación de novas funcionalidades coma por exemplo na reescritura de consultas SQL.

Están dispoñibles outros exemplos en Lua para MySQL Proxy que poden servir de base para desenvolver scripts propios:

MySQL Proxy está baixo licenza GNU/GPL.

Máis información:

» Páxina do proxecto

» Titorial de MySQL Proxy

Xunta

Xunta de Galicia, Información mantida e publicada na internet pola Xunta de Galicia

Atención á cidadanía - Accesibilidade - Aviso legal - Mapa do portal