Lab 10: ProxySQL Routing
Overview
Step 1: Launch MySQL Primary and Replica
docker network create proxysql-net
# Start primary
docker run -d \
--name mysql-primary \
--network proxysql-net \
--hostname mysql-primary \
-e MYSQL_ROOT_PASSWORD=rootpass \
-e MYSQL_DATABASE=appdb \
mysql:8.0 \
--server-id=1 \
--log-bin=mysql-bin \
--binlog-format=ROW \
--gtid-mode=ON \
--enforce-gtid-consistency=ON
# Start replica
docker run -d \
--name mysql-replica \
--network proxysql-net \
--hostname mysql-replica \
-e MYSQL_ROOT_PASSWORD=rootpass \
mysql:8.0 \
--server-id=2 \
--log-bin=mysql-bin \
--binlog-format=ROW \
--gtid-mode=ON \
--enforce-gtid-consistency=ON \
--read-only=ON
# Wait for both
for srv in mysql-primary mysql-replica; do
for i in $(seq 1 30); do
docker exec $srv mysql -uroot -prootpass -e "SELECT 1" 2>/dev/null && break || sleep 2
done
echo "$srv ready"
doneStep 2: Configure Replication Between MySQL Nodes
Step 3: Launch ProxySQL
Step 4: Configure MySQL Servers in ProxySQL
Step 5: Configure Application Users and Query Rules
Step 6: Test Query Routing Through ProxySQL
Step 7: Monitor Connection Pool
Step 8: Capstone — Simulate Replica Failure and Failover
Summary
ProxySQL Component
Location
Purpose
Key Takeaways
Last updated
