run_compose_and_sql.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # 确认 Docker 和 Docker Compose 已安装
  3. if ! command -v docker &> /dev/null; then
  4. echo "Docker 未安装,请先安装 Docker"
  5. exit 1
  6. fi
  7. if ! command -v docker-compose &> /dev/null; then
  8. echo "Docker Compose 未安装,请先安装 Docker Compose"
  9. exit 1
  10. fi
  11. # 确保我们位于脚本所在目录
  12. SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
  13. cd "$SCRIPT_DIR" || exit 1
  14. # 执行 docker-compose-base.yml 文件
  15. echo "启动 Docker 服务..."
  16. docker-compose -f docker-compose-base.yml up -d
  17. # 等待服务启动
  18. echo "等待服务启动..."
  19. sleep 10
  20. # 定义数据库相关信息
  21. CONTAINER_NAME="mysql" # 替换为你的数据库容器名称
  22. DATABASE_NAME="kxmall3" # 替换为你想要创建的数据库名称
  23. DATABASE_USER="root" # 替换为你想要使用的数据库用户名
  24. DATABASE_PASSWORD="1234newpwd!@#ABC" # 替换为你想要使用的数据库密码
  25. # 创建数据库并设置编码
  26. echo "创建数据库并设置编码..."
  27. docker exec -i "$CONTAINER_NAME" mysql -u "$DATABASE_USER" -p"$DATABASE_PASSWORD" <<EOF
  28. CREATE DATABASE IF NOT EXISTS $DATABASE_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  29. EOF
  30. # 执行 SQL 脚本
  31. SQL_SCRIPT="kxmall3.sql"
  32. if [ -f "$SQL_SCRIPT" ]; then
  33. echo "执行 SQL 脚本..."
  34. docker exec -i "$CONTAINER_NAME" mysql -u "$DATABASE_USER" -p"$DATABASE_PASSWORD" "$DATABASE_NAME" < "$SQL_SCRIPT"
  35. if [ $? -eq 0 ]; then
  36. echo "SQL 脚本执行成功!"
  37. else
  38. echo "SQL 脚本执行失败!"
  39. exit 1
  40. fi
  41. else
  42. echo "SQL 脚本文件 $SQL_SCRIPT 不存在!"
  43. exit 1
  44. fi
  45. echo "所有操作已完成!"