Vérifiez que la configuration est bien vierge en vérifiant qu'il n'y a aucune entrées dans les tables *mysql_servers, mysql_replication_hostgroups et mysql_query_rules*
~~~
ProxySQL Admin> SELECT * FROM mysql_servers;
Empty set (0.00 sec)
ProxySQL Admin> SELECT * from mysql_replication_hostgroups;
Empty set (0.00 sec)
ProxySQL Admin> SELECT * from mysql_query_rules;
Empty set (0.00 sec)
~~~
### Changement du mot de passe compte admin
Le mot de passe par défaut du compte admin est 'admin', on peux changer ça comme ceci dans l'interface d'admin :
~~~
ProxySQL Admin> set admin-admin_credentials="admin:admin;admin:IkjeevgujHus"
~~~
On sauvegarde la configuration de l'admin en mémoire :
~~~
ProxySQL Admin> LOAD ADMIN VARIABLES TO RUNTIME;
~~~
Puis rendre persistant les changement de l'admin sur le disque :
~~~
ProxySQL Admin> SAVE ADMIN VARIABLES FROM RUNTIME;
ProxySQL considère les backend configurer avec *read_only = 0* comme des instances d'écriture (WRITER), et les instances avec *read_only = 1* comme des répliques.
Il faut donc s'assurer ques ces variables soit définie correctement sur toutes les instances, car ProxySQL prendra les décisions de routage en fonction de cette valeur.
## Configuration du monitoring
ProxySQL surveille en permanence les backends du serveur MySQL configurés pour identifier l'état de santé.
Les informations d'identification pour la surveillance des backends doivent être créées dans MySQL et également configurées dans ProxySQL avec les intervalles de vérification spécifiques à l'environnement.
On créer un utlisateur sur le serveur SQL primaire :
~~~
MariaDB> UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
Query OK, 1 row affected (0.00 sec)
~~~
Et on ajoute l'utilisateur et son mot de passe dans ProxySQL :
~~~
ProxySQL Admin> UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
Query OK, 1 row affected (0.00 sec)
ProxySQL Admin> UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_password';
Query OK, 1 row affected (0.00 sec)
~~~
On configure ensuite les différentes intervales de surveillance, en secondes :
~~~
ProxySQL Admin> UPDATE global_variables SET variable_value='2000' WHERE variable_name IN ('mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval');
Query OK, 3 rows affected (0.00 sec)
ProxySQL Admin> SELECT * FROM global_variables WHERE variable_name LIKE 'mysql-monitor_%';
Les modifications apportées au moniteur MySQL dans la table global_variables seront appliquées après l'exécution de l'instruction *LOAD MYSQL VARIABLES TO RUNTIME* :
~~~
ProxySQL Admin> LOAD MYSQL VARIABLES TO RUNTIME;
Query OK, 0 rows affected (0.00 sec)
~~~
Pour conserver les modifications de configuration lors des redémarrages, *SAVE MYSQL VARIABLES TO DISK* doit également être exécuté :