主要是杠一下的数据库123-456.sql,这个神经病一样,试了很多写法
#!/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-BCD-ETG" #数据库文件的位置 SQL_NAME_DIR="/www/backup/database/dldl-gm.sql" #输出数据库名时保存文件的位置 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 " $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 " 数据库$MY_DB_NAME创建成功 开始导入数据库文件$SQL_NAME_DIR......" sleep 1 echo -e " $ECHO_TEXT" $MYSQL_CMD "$MY_DB_NAME" < $SQL_NAME_DIR echo -e " $SQL_NAME_DIR已经成功导入$MY_DB_NAME " else echo -e " 数据库$MY_DB_NAME创建失败,应为已经有一个$MY_DB_NAME的数据库" fi exit 0