#!/bin/bash ############################################################################## # 在 mysql 和 proxysql 中同时创建用户 ############################################################################## # --- 配置区 --- # MySQL 管理员信息 MYSQL_ADMIN="root" MYSQL_PASS="Root_123456" # ProxySQL 管理员信息 PROXY_ADMIN="admin" PROXY_PASS="admin" PROXY_HOST="127.0.0.1" PROXY_PORT="6032" # 新用户信息 NEW_USER=$1 NEW_PASS=$2 if [ -z "$NEW_USER" ] || [ -z "$NEW_PASS" ]; then echo "使用方法: ./create_mgr_user.sh <用户名> <密码>" exit 1 fi echo ">>> 正在连接 ProxySQL 寻找当前的 Primary 节点..." # 获取 Hostgroup 10 中的第一个 ONLINE 节点 PRIMARY_NODE=$(docker exec -i proxysql mysql -u$PROXY_ADMIN -p$PROXY_PASS -h$PROXY_HOST -P$PROXY_PORT -N -s -e "SELECT hostname FROM runtime_mysql_servers WHERE hostgroup_id=10 AND status='ONLINE' LIMIT 1;") if [ -z "$PRIMARY_NODE" ]; then echo "错误: 无法在 ProxySQL 中找到在线的 Primary 节点!" exit 1 fi echo ">>> 发现 Primary 节点: $PRIMARY_NODE" # 1. 在 MySQL 中创建用户 echo ">>> 步骤 1: 在 MySQL ($PRIMARY_NODE) 中创建用户..." docker exec -i proxysql mysql -h$PRIMARY_NODE -u$MYSQL_ADMIN -p$MYSQL_PASS <>> 步骤 2: 在 ProxySQL 中同步用户信息..." docker exec -i proxysql mysql -u$PROXY_ADMIN -p$PROXY_PASS -h$PROXY_HOST -P$PROXY_PORT <