#!/bin/bash
# 定义数据库连接参数
IP="your-ip"
PORT="3306"
USER="your-username"
PASSWORD="your-password"
DATABASE="your-database-name"
TABLE="your-table-name"
# 定义最大尝试次数,避免无限循环
MAX_ATTEMPTS=12 # 例如,尝试6次,每次5秒
# 函数:检查MariaDB服务是否启动
check_mariadb_service() {
echo "Checking if MariaDB service is running..."
if docker exec mariadb-server mysqladmin -u $USER -p$PASSWORD ping --silent; then
echo "MariaDB service is running and responding to ping."
return 0
else
echo "MariaDB service is not running or not responding to ping."
return 1
fi
}
# 函数:更新MariaDB数据库中的数据
update_database_data() {
echo "Attempting to update data in the MariaDB container..."
UPDATE_STATUS=$(docker exec mariadb-server mysql -h $IP -P $PORT -u $USER -p$PASSWORD $DATABASE -e "USE $DATABASE; UPDATE $TABLE SET column_name='new_value' WHERE condition;" 2>&1)
if [ $? -eq 0 ]; then
echo "Data updated successfully."
return 0
else
echo "Failed to update data: $UPDATE_STATUS"
return 1
fi
}
# 主逻辑
attempt_counter=0
while [ $attempt_counter -lt $MAX_ATTEMPTS ]; do
if check_mariadb_service; then
if update_database_data; then
exit 0
else
exit 1
fi
else
echo "Retrying in 5 seconds..."
sleep 5
((attempt_counter++))
fi
done
echo "MariaDB service is still not available after $MAX_ATTEMPTS attempts. Exiting."
exit 1