
广告
脚本代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/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使用方法如下
1 2 | cd / && . / run_sql.sh localhost 3306 root 123456 AAA - BBB - CCC / www / backup / database / dldl - gm.sql # 解释:cd / && ./run_sql.sh 连接地址 端口 账号 密码 创建的数据库名 数据库文件的位置 |
脚本代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/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技术频道
666