English 简体 繁體 Tiếng Việt
  • 注册
  • 服务器技术 服务器技术 关注:1 内容:23

    Linux宝塔环境 一键创建数据库并导入-bash脚本案例

  • 查看作者
  • 打赏作者
    • 1
    • 服务器技术
    • 脚本代码:


      #!/bin/bash
      #数据库连接地址 可以是局域网IP 外网IP 本机内部地址 localhost 127.0.0.1
      h_address="localhost"
      #数据库端口 注意的是这个参数-P是大写字母
      P_port="3306"
      #数据库管理员账号
      u_user="root"
      #数据库管理员密码 注意的是这个参数-p是小写字母
      p_password="kk123456"
      #你要创建的数据库名
      MY_DB_NAME="AAA-BBB-CCC-DDD"
      #输出数据库名时保存文件的位置
      MY_LOG="/tmp/journal_$MY_DB_NAME.txt"
      #数据库文件的位置
      SQL_NAME_DIR="/www/backup/database/dldl-gm.sql"
      #登入数据库的命令
      MYSQL_CMD="mysql -h$h_address -P$P_port -u$u_user -p$p_password"
      ECHO_TEXT="[忽略警告不用管--下面英文意思] 警告:在命令行界面上使用密码可能不安全。"
      rm -rf $MY_LOG
      #--------------创建数据库--------------
      echo -e "\n$ECHO_TEXT"
      #查询已有数据库名称,以免照成误操着
      $MYSQL_CMD -e"show databases;" >$MY_LOG
      Journal=`cat $MY_LOG | grep -Fx "$MY_DB_NAME"`
      #如果存在一个要创建的数据库就不创建不导入
      if [ ! x${MY_DB_NAME} = x${Journal} ]; then
          #如果被创建的数据库不存在就创建并导入数据库
          $MYSQL_CMD -e'create database `'${MY_DB_NAME}'`'' DEFAULT CHARACTER SET utf8;'
          echo -e "\n数据库$MY_DB_NAME创建成功\n\n开始导入数据库文件$SQL_NAME_DIR......"
          sleep 1
          echo -e "\n$ECHO_TEXT"
          $MYSQL_CMD "$MY_DB_NAME" <$SQL_NAME_DIR
          echo -e "\n$SQL_NAME_DIR已经成功导入$MY_DB_NAME\n"
      else
          echo -e "\n数据库$MY_DB_NAME创建失败,应为已经有一个$MY_DB_NAME的数据库"
      fi
      exit 0

      案例2:


      第二种写法就是把参数 写在执行脚本外,假如把脚本放在更目录 脚本名是run_sql.sh使用方法如下

      cd / && ./run_sql.sh localhost 3306 root 123456 AAA-BBB-CCC /www/backup/database/dldl-gm.sql
      # 解释:cd / && ./run_sql.sh 连接地址 端口 账号 密码 创建的数据库名 数据库文件的位置

      脚本代码:


      #!/bin/bash
      #数据库连接地址 可以是局域网IP 外网IP 本机内部地址 localhost 127.0.0.1
      h_address=$1
      #数据库端口 注意的是这个参数-P是大写字母
      P_port=$2
      #数据库管理员账号
      u_user=$3
      #数据库管理员密码 注意的是这个参数-p是小写字母
      p_password=$4
      #你要创建的数据库名
      MY_DB_NAME=$5
      #数据库文件的位置
      SQL_NAME_DIR=$6
      #输出数据库名时保存文件的位置
      MY_LOG="/tmp/journal_$MY_DB_NAME.txt"
      #登入数据库的命令
      MYSQL_CMD="mysql -h$h_address -P$P_port -u$u_user -p$p_password"
      ECHO_TEXT="[忽略警告不用管--下面英文意思] 警告:在命令行界面上使用密码可能不安全。"
      rm -rf $MY_LOG
      #--------------创建数据库--------------
      echo -e "\n$ECHO_TEXT"
      #查询已有数据库名称,以免照成误操着
      $MYSQL_CMD -e"show databases;" >$MY_LOG
      Journal=`cat $MY_LOG | grep -Fx "$MY_DB_NAME"`
      #如果存在一个要创建的数据库就不创建不导入
      if [ ! x${MY_DB_NAME} = x${Journal} ]; then
          #如果被创建的数据库不存在就创建并导入数据库
          $MYSQL_CMD -e'create database `'${MY_DB_NAME}'`'' DEFAULT CHARACTER SET utf8;'
          echo -e "\n数据库$MY_DB_NAME创建成功\n\n开始导入数据库文件$SQL_NAME_DIR......"
          sleep 1
          echo -e "\n$ECHO_TEXT"
          $MYSQL_CMD "$MY_DB_NAME" <$SQL_NAME_DIR
          echo -e "\n$SQL_NAME_DIR已经成功导入$MY_DB_NAME\n"
      else
          echo -e "\n数据库$MY_DB_NAME创建失败,应为已经有一个$MY_DB_NAME的数据库"
      fi
      exit 0

      参考文档:

      有道云笔记:https://note.youdao.com/s/DkVuMxCk

      转载自west2技术频道

      LV8
      水晶之恋

      666

      回复

      请登录之后再进行评论

      登录
    • 任务
    • 管理
    • 回底部
    • 帖子间隔 侧栏位置: