#!/bin/bash wfc_work_dir=/opt/wfc docker_work_dir=${wfc_work_dir}/docker mysql_sql_dir=${docker_work_dir}/mysql/db docker_sql_dir=/docker-entrypoint-initdb.d docker_mysql_conf_d=/etc/mysql/conf.d docker_my_conf_file=${docker_mysql_conf_d}/my.cnf mysql_container_name=wfc-mysql # 获取 MySQL 容器的 IP 地址 mysql_container_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${mysql_container_name}) # 在容器内生成 my.cnf 文件 docker exec ${mysql_container_name} bash -c "cat < ${docker_my_conf_file} [client] user=root password=\${MYSQL_ROOT_PASSWORD} host=${mysql_container_ip} port=$ EOF" case "$1" in system) db_name=wfc_system_db cd ${mysql_sql_dir} for sql in ./upgrade/${db_name}/*.sql; do if [ -f "$sql" ]; then echo -n "Execute SQL script: ${sql} ... " # docker exec -i ${mysql_container_name} mysql -u ${db_name} < ${sql}; docker exec -i ${mysql_container_name} mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql} if [ $? = 0 ]; then echo "done" fi else echo "No SQL files found in ./upgrade/${db_name}/" fi done ;; user) db_name=wfc_user_db cd ${mysql_sql_dir} for sql in ./upgrade/${db_name}/*.sql; do if [ -f "$sql" ]; then echo -n "Execute SQL script: ${sql} ... " docker exec -i ${mysql_container_name} mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql} if [ $? = 0 ]; then echo "done" fi else echo "No SQL files found in ./upgrade/${db_name}/" fi done ;; config) db_name=wfc_config_db cd ${mysql_sql_dir} for sql in ./upgrade/${db_name}/*.sql; do if [ -f "$sql" ]; then echo -n "Execute SQL script: ${sql} ... " docker exec -i ${mysql_container_name} mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql} if [ $? = 0 ]; then echo "done" fi else echo "No SQL files found in ./upgrade/${db_name}/" fi done ;; all) $0 config $0 system $0 user ;; *) echo "WANFi Control and Billing System Upgrade Database ..." echo "Usage: $0 config|system|user|all" exit 1 ;; esac