github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/scripts/replica-mysql-config.sh (about)

     1  #!/bin/bash
     2  
     3  until docker exec mattermost-mysql sh -c 'mysql -u root -pmostest -e ";"'
     4  do
     5      echo "Waiting for mattermost-mysql database connection..."
     6      sleep 4
     7  done
     8  
     9  priv_stmt='GRANT REPLICATION SLAVE ON *.* TO "mmuser"@"%" IDENTIFIED BY "mostest"; FLUSH PRIVILEGES;'
    10  docker exec mattermost-mysql sh -c "mysql -u root -pmostest -e '$priv_stmt'"
    11  
    12  until docker-compose -f docker-compose.makefile.yml exec mysql-read-replica sh -c 'mysql -u root -pmostest -e ";"'
    13  do
    14      echo "Waiting for mysql-read-replica database connection..."
    15      sleep 4
    16  done
    17  
    18  docker-ip() {
    19      docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$@"
    20  }
    21  
    22  MS_STATUS=`docker exec mattermost-mysql sh -c 'mysql -u root -pmostest -e "SHOW MASTER STATUS"'`
    23  CURRENT_LOG=`echo $MS_STATUS | awk '{print $6}'`
    24  CURRENT_POS=`echo $MS_STATUS | awk '{print $7}'`
    25  
    26  start_slave_stmt="CHANGE MASTER TO MASTER_HOST='$(docker-ip mattermost-mysql)',MASTER_USER='mmuser',MASTER_PASSWORD='mostest',MASTER_LOG_FILE='$CURRENT_LOG',MASTER_LOG_POS=$CURRENT_POS; START SLAVE;"
    27  start_slave_cmd='mysql -u root -pmostest -e "'
    28  start_slave_cmd+="$start_slave_stmt"
    29  start_slave_cmd+='"'
    30  docker exec mattermost-mysql-read-replica sh -c "$start_slave_cmd"
    31  
    32  docker exec mattermost-mysql-read-replica sh -c "mysql -u root -pmostest -e 'SHOW SLAVE STATUS \G'"