Amorcer MySQL Router sur un InnoDB Cluster (bootstrap)
MySQLRouter et proxyCommande
# Generates config from metadata and creates the router account; --user is required when run as root
mysqlrouter --bootstrap icadmin@db1:3306 --directory /etc/mysqlrouter/prod --account routeruser --account-create if-not-exists --name router01 --conf-bind-address 0.0.0.0 --user mysqlrouter
/etc/mysqlrouter/prod/start.sh
# Ports: 6446 RW, 6447 RO, 6450 RW split (classic); 6448 / 6449 X protocol
mysql -h app-host -P 6446 -u app -p -e "SELECT @@hostname"
mysql -h app-host -P 6447 -u app -p -e "SELECT @@hostname"
mysqlsh icadmin@db1:3306 -- cluster list-routersCe que fait la commande
Enregistre Router dans les métadonnées du cluster et génère le compte et la configuration ; l'application atteint la primaire courante via le port RW et les secondaires en round-robin via le port RO.
Quand l'utiliser
Pour placer une couche de failover transparente devant un InnoDB Cluster / ClusterSet / ReplicaSet ; typiquement un Router par serveur d'application.
Attention
Router est sans état ; le faire tourner à côté de l'application évite un point de défaillance unique, ce que ne fait pas un Router central unique. Le compte de bootstrap n'est utilisé que pendant le bootstrap ; Router lit les métadonnées avec son propre compte (routeruser). Il apprend les changements de topologie via le metadata cache sans nouveau bootstrap. Le port de séparation RW (6450) envoie les lectures à l'intérieur d'une transaction vers la primaire et les autres vers les secondaires ; attention aux applications qui attendent le read-your-writes. La version de Router ne doit pas être plus ancienne que celle des serveurs MySQL du cluster.