我写了一个 bash 脚本,但问题出在这里。脚本运行了几个小时,但始终无法完成。我看到 MySQL 导入过程已完成,但脚本始终无法继续。我尝试在echo
MySQL 命令后添加,但也没有看到echo
。就好像我始终无法收到 MySQL 已完成的消息。
以下是 Bash 脚本的代码:
#!/bin/bash
PASSWORD="password"
db="dbName"
file=`date +%Y%m%d`.$db.sql
gunzip $file.gz
mysql -u $USER -p$PASSWORD < $file
yest= date -d "yesterday 13:00 " '+%Y%m%d'.$db.sql
rm -f $yest
echo Done
更新:
记录了此导入并且我看到:
55 Query UNLOCK TABLES
55 Query /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */
55 Query /*!40101 SET SQL_MODE=@OLD_SQL_MODE */
55 Query /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */
55 Query /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */
55 Query /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */
55 Query /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */
55 Query /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
55 Query /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */
55 Quit
作为日志中的最后一条命令,这也是 sql 文件中的最后一条命令。
它就挂在这里...
答案1
编辑:更好的方法是使用 >> 附加到文件。
请注意我的错误是“quit”而不是“.quit”
mysql 可能需要“quit”命令才能退出。您可能需要将其附加到 .sql 文件中
#!/bin/bash
USER="user"
PASSWORD="password"
echo "User and Password Set."
db="dbName"
file=`date +%Y%m%d`.$db.sql
gunzip $file.gz
echo "DB File Unzipped"
echo "quit" >> $file #### append .quit command to end of file
echo "" >> $file #### just to make sure there is a return at the end of the previous line
mysql -u $USER -p$PASSWORD < $file
yest= date -d "yesterday 13:00 " '+%Y%m%d'.$db.sql
rm -f $yest
echo Done