MySQL 导入永远无法完成

MySQL 导入永远无法完成

我写了一个 bash 脚本,但问题出在这里。脚本运行了几个小时,但始终无法完成。我看到 MySQL 导入过程已完成,但脚本始终无法继续。我尝试在echoMySQL 命令后添加,但也没有看到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

相关内容