├── volumes ├── mha_manager │ ├── work │ │ └── app1.failover.complete │ └── conf │ │ └── app1.conf ├── mha_share │ └── scripts │ │ ├── ssh_auth_keys.sh │ │ ├── ssh_generate_key.sh │ │ ├── mysql_grant_slave.sh │ │ └── mysql_start_slave.sh ├── mha_node2 │ └── conf │ │ └── my.cnf ├── mha_node0 │ └── conf │ │ └── my.cnf └── mha_node1 │ └── conf │ └── my.cnf ├── .gitignore ├── scripts ├── mha_check_ssh.sh ├── mha_start_manager.sh ├── mha_check_repl.sh ├── ssh_start.sh ├── mysql_set_mbs.sh └── ssh_share.sh ├── parameters.env ├── services ├── mha4mysql-node │ └── Dockerfile └── mha4mysql-manager │ └── Dockerfile ├── README.md └── docker-compose.yml /volumes/mha_manager/work/app1.failover.complete: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Thumbs.db 3 | volumes/*/lib -------------------------------------------------------------------------------- /scripts/mha_check_ssh.sh: -------------------------------------------------------------------------------- 1 | docker exec -it mha_manager masterha_check_ssh --conf=/etc/mha/app1.conf -------------------------------------------------------------------------------- /scripts/mha_start_manager.sh: -------------------------------------------------------------------------------- 1 | docker exec -it mha_manager masterha_manager --conf=/etc/mha/app1.conf -------------------------------------------------------------------------------- /scripts/mha_check_repl.sh: -------------------------------------------------------------------------------- 1 | docker exec -it mha_manager masterha_check_repl --conf=/etc/mha/app1.conf -------------------------------------------------------------------------------- /volumes/mha_share/scripts/ssh_auth_keys.sh: -------------------------------------------------------------------------------- 1 | cat $MHA_SHARE_SSHKEYS_PATH/*.pub > /root/.ssh/authorized_keys -------------------------------------------------------------------------------- /volumes/mha_node2/conf/my.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | server-id=3 3 | replicate-do-db=testing 4 | replicate-ignore-db=mysql 5 | expire_logs_days=7 -------------------------------------------------------------------------------- /volumes/mha_share/scripts/ssh_generate_key.sh: -------------------------------------------------------------------------------- 1 | ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa 2 | cp /root/.ssh/id_rsa.pub "$MHA_SHARE_SSHKEYS_PATH/id_rsa_$CONTAINER_NAME.pub" -------------------------------------------------------------------------------- /parameters.env: -------------------------------------------------------------------------------- 1 | ROOT_PASSWORD=123456 2 | MYSQL_ROOT_PASSWORD=123456 3 | MYSQL_DATABASE=testing 4 | MYSQL_User=testing 5 | MYSQL_PASSWORD=testing 6 | MHA_SHARE_SCRIPTS_PATH=/root/mha_share/scripts 7 | MHA_SHARE_SSHKEYS_PATH=/root/mha_share/sshkeys 8 | -------------------------------------------------------------------------------- /scripts/ssh_start.sh: -------------------------------------------------------------------------------- 1 | docker exec -it mha_node0 /bin/bash service ssh start 2 | docker exec -it mha_node1 /bin/bash service ssh start 3 | docker exec -it mha_node2 /bin/bash service ssh start 4 | docker exec -it mha_manager /bin/bash service ssh start 5 | -------------------------------------------------------------------------------- /volumes/mha_share/scripts/mysql_grant_slave.sh: -------------------------------------------------------------------------------- 1 | mysql -u root -p$MYSQL_ROOT_PASSWORD <