Mostrando entradas con la etiqueta MySQL Proxy. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySQL Proxy. Mostrar todas las entradas

jueves, 24 de mayo de 2018

Proxy MySQL :: HAproxy || ProxySQL y KeepAlived

Entonces, cuando se trata de enrutar su tráfico MySQL, existen varias opciones. 

Ahora que he visto que HAproxy se usa con más frecuencia con los clientes, es bastante fácil de configurar. Percona tiene un ejemplo para los interesados:

Personalmente, me gusta ProxySQL. Percona también tiene pocos blogs sobre esto también
Percona también tiene disponible la versión ProxySQL

Estaba pensando en escribir algunos ejemplos, pero en general Percona lo ha explicado muy bien. No quiero quitar nada de esas publicaciones, en cambio, señalo que hay mucha buena información disponible a través de esas urls. Entonces, en lugar de volver a escribir lo que ya se ha escrito, crearé una colección de información para los interesados.

Primero compare y decida por usted mismo lo que necesita y desea. El siguiente enlace por supuesto va a estar sesgado hacia ProxySQL, pero le da un alcance general para que usted considere.
Si tiene un clúster o maestro para dominar y no le importa a qué servidor van las escrituras vs lecturas, siempre que tenga una conexión; entonces es probable que HAproxy sea una configuración simple y rápida para usted.

La ventaja con ProxySQL es la capacidad de ordenar el tráfico de una manera ponderada, FÁCIL. Por lo tanto, puede hacer que las escrituras vayan al nodo 1 y seleccione la extracción del nodo 2 y del nodo 3. La documentación sobre esto se puede encontrar aquí:
Sí, se puede hacer con HAproxy, pero debe instruir a la aplicación en consecuencia.
Esto se maneja en ProxySQL en base a sus reglas de consulta.

Ahora la pregunta obvia aquí: OK, ¿cómo evitar que ProxySQL se convierta en el único punto de falla?

Puede invertir es un equilibrador de carga robusto y etc etc etc ... Mezcle hardware en él .... O hágalo fácil para usted y soporte de código abierto y use KeepAlive d. Esto es MUY fácil de configurar y todo está documentado nuevamente aquí:
Si alguna vez se ocupó de lua y mysql-proxy , ProxySQL y Keepalived deberían ser muy simples para usted. Si aún lo desea, por alguna razón: https://launchpad.net/mysql-proxy

Independientemente de si elige HAproxy, ProxySQL u otra solución, debe asegurarse de no reemplazar un único punto de falla con otro y keepalived es ideal para eso. Muy pocas razones para no hacer esto si está usando un proxy.

Así que algunas cosas más en ProxySQL.
http://anothermysqldba.blogspot.com/2018/05/proxy-mysql-haproxy-proxysql-keepalived.html

jueves, 9 de mayo de 2013

Configuración de MySQL Proxy

Original post: http://anothermysqldba.blogspot.com/2013/05/setup-mysql-proxy.html

Así que esto es sólo un ejemplo muy simple de utilizar Proxy MySQL .. 

El Proxy MySQL ha estado en las etapas Alfa de lo que parece muchos años. 


MySQL Proxy Documentación: 

Lo que queda del sitio forja MySQL para MySQL Proxy WIKI se puede encontrar aquí:https://wikis.oracle.com/display/mysql/MySQL+Proxy 

Instalar MySQL Proxy : 
Descargar y descomprimir de dev.mysql.com . Versión alfa actual es mysql-proxy 0.8.3. 

Asegúrese de que usted también tiene instalado Lua 

yum install lua-devel lua-static lua


A continuación encontrará mysql-proxy en el directorio bin. 


[root@localhost bin]# ./mysql-proxy --help
Usage:
mysql-proxy [OPTION...] - MySQL Proxy


MySQL opciones de comando : 

En primer lugar debe asegurarse de que son conscientes de la salida de la documentación actualizada. 

Se podría pensar que la adición de demonio = true en el archivo de configuración es válida. 
Lo hace después de todo, señalar qué tan cierto es el válido para la siguiente opción a través de la documentación. 



For example, the following is invalid:

 [mysql-proxy] proxy-skip-profiling 

But this is valid:

 [mysql-proxy] proxy-skip-profiling = true 


http://dev.mysql.com/doc/refman/5.6/en/mysql-proxy-configuration.html # option_mysql-proxy_daemon 

Sin embargo demonio o demonio = true resultados con la siguiente cuestión a fin de utilizardemonio = 1 

./bin/mysql-proxy --defaults-file=mysql_proxy.cnf
(critical) Key file contains key 'daemon' which has value that cannot be interpreted. 


Lo mismo es cierto para keepalive = true 


./bin/mysql-proxy --defaults-file=mysql_proxy.cnf
(critical) Key file contains key 'keepalive' which has value that cannot be interpreted. 


Usando la interfaz de administración : 

El archivo admin.lua está disponible en el directorio mysql-proxy: 
El archivo reporter.lua también se puede colocar en el directorio / lib / mysql-proxy / lua / directorio: 


Así que termino con el siguiente ejemplo de configuración


vi mysql_proxy.cnf

[mysql-proxy]

admin -address =127.0.0.1: 3308

proxy -address=127.0.0.1: 3307

proxy-skip-profiling = true
daemon=1
pid-file = / var / run / mysql-proxy.pid
log-file = / var / log / mysql-proxy.log
log-level = debug
proxy-backend-addresses = 127.0.0.1:3306
# Proxy-read-only-backend-addresses = 127.0.0.1:3306
keepalive = 1
admi-username = root
admin-password = secretpassword
admi-lua-script = / usr / local / src / MySQL / mysql-proxy / admin.lua
proxy-lua-script = / usr / local / src / mysql / mysql-proxy / reporter.lua
PLUGIN_DIR = / usr / lib / mysql / plugin /
plugins = proxy, administrador


Esta vez empieza .... 


./bin/mysql-proxy --defaults-file=mysql_proxy.cnf


Tail iniciar sesión para confirmar ese proxy está funcionando continuación, inicie sesión en el puerto de administración (3.308) 

(message) proxy listening on port 127.0.0.1: 3307
# mysql -u root -p -P3308 -h127.0.0.1 

Una vez que ha entrado en el que usted puede comenzar a probarlo: 

# mysql -u root -p -P3308 -h127.0.0.1

show querycounter;
+---------------+
| query_counter |
+---------------+
| NULL |
+---------------+ 



SELECT * FROM backends;
+-------------+----------------+-------+------+
| backend_ndx | address | state | type |
+-------------+----------------+-------+------+
| 1 | 127.0.0.1:3306 | 1 | 1 |
+-------------+----------------+-------+------+ 



> SHOW PROXY PROCESSLIST;
ERROR 1105 (07000): need a resultset + proxy.PROXY_SEND_RESULT ... got something else


Recuerde siempre comprobar sus registros ... 


(critical) (read_query) [string "/usr/local/src/MySQL/mysql-proxy/admin.lua"]:152: bad argument #1 to 'pairs' (table expected, got nil) 


Aceptar el Proxy MySQL está sucediendo ... 
Ahora los problemas y se queja más de Lua y por qué es parte de MySQL Proxy pueden empezar ... 

http://lua.2524044.n2.nabble.com/Beginner-from-Python-starting-to-MySQL-Proxy-td7636807.html