Introducción

ProxySQL es un proxy de alto rendimiento que actúa como intermediario entre las bases de datos y todos los clientes que buscan recursos. Tiene una serie de ventajas que incluyen:

  • Enrutamiento de consultas a bases de datos en buen estado para garantizar un procesamiento óptimo de consultas.
  • Proporciona equilibrio de carga inteligente de los requisitos del grupo de bases de datos.
  • Actúa como un cortafuegos al filtrar las consultas realizadas a la base de datos, evitando problemas de seguridad de la inyección de SQL.
  • Abstrae la complejidad de la topología de la base de datos subyacente de las aplicaciones afectadas.
  • Puede reescribir consultas mal escritas para su optimización y también tiene una función de caché de consultas para garantizar esto.

requisitos

  • Distribución Linux CentOS 7
  • Usuario no root con permisos sudo
  • Conocimientos básicos de manejo de la terminal Linux.
  • MySQL instalado en su CentOS 7. Para obtener más información, consulte nuestro tutorial Cómo instalar MYSQL 8.0 y crear una base de datos en un VPS Linux CentOS 7 o un servidor dedicado.

pasos

Actualizar paquetes del sistema

$ sudo yum update

Instalar dependencias

$ sudo yum install perl-DBD-MYSQL -y
$ sudo yum install wget -y

Instalar ProxySQL

$ sudo wget https://github.com/sysown/proxysql/releases/download/v1.4.12/proxysql-1.4.12-1-centos7.x86_64.rpm
$ sudo rpm -ivh proxysql-1.4.12-1-centos7.x86_64.rpm

Ahora puede continuar e iniciar el servicio ProxySQL y asegurarse de que se esté ejecutando.

$ sudo systemctl start proxysql
$ sudo systemctl status proxysql
● proxysql.service - LSB: High Performance Advanced Proxy for MySQL
   Loaded: loaded (/etc/rc.d/init.d/proxysql; bad; vendor preset: disabled)
   Active: active (running) since Sat 2018-09-22 20:44:40 UTC; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 14660 ExecStart=/etc/rc.d/init.d/proxysql start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/proxysql.service
               ├─14664 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql
               └─14665 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql
Sep 22 20:44:40 centos7-hostadvice systemd[1]: Starting LSB: High Performance Advanced Proxy for MySQL...
Sep 22 20:44:40 centos7-hostadvice proxysql[14660]: Starting ProxySQL: 2018-09-22 20:44:40 [INFO] Using config file /etc/proxysql.cnf
Sep 22 20:44:40 centos7-hostadvice proxysql[14660]: DONE!
Sep 22 20:44:40 centos7-hostadvice systemd[1]: Started LSB: High Performance Advanced Proxy for MySQL.

Debería mostrarte activo (continuamente) en la tercera línea de la salida comenzando con «Activo». El resultado anterior significa que ProxySQL se ha instalado y se está ejecutando correctamente.

Puede acceder a la interfaz de administración mediante el siguiente comando.

$ mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt="Admin>" --default-auth=mysql_native_password
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 12
Server version: 5.5.30 (ProxySQL Admin Module)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h'forhelp. Type 'c' to clear the current input statement.
Admin>

Establecer una contraseña de administrador

De forma predeterminada, el nombre de usuario y la contraseña son admin, lo cual es realmente inseguro. Es posible que desee cambiar la contraseña.

En el indicador de ProxySQL, escriba el siguiente comando mientras reemplaza la contraseña con su propia contraseña única.

Admin>UPDATE global_variables SET variable_value="admin:password" WHERE variable_name="admin-admin_credentials";
Query OK, 1 row affected (0.00 sec)

Haga que los cambios sean persistentes agregando los siguientes comandos:

Admin>LOAD ADMIN VARIABLES TO RUNTIME;
Admin>SAVE ADMIN VARIABLES TO DISK;

Conclusión

Hemos instalado correctamente ProxySQL y configuramos la contraseña de administrador para mayor seguridad. Nota Las configuraciones también se pueden realizar a través de libconfig y analizar en ProxySQL.

Aunque ProxySQL todavía está en desarrollo activo y se realizan cambios de una versión a otra, ha demostrado ser una excelente herramienta para administrar la complejidad de la base de datos.

Eche un vistazo a cómo configurar y ejecutar ProxySQL para monitorear en los nodos MYSQL.