最近要批量生成大量测试数据。写了一个mysql文件。由于执行这个sql文件时间太长,所以需要到mysql服务器上后台执行这个脚本。

一、准备sql文件。

我的sql文件名是 full.sql 里面的内容就是sql语句。比如:

INSERT INTO `xnm`.`role` (`id`, `name`, `description`, `create_time`, `update_time`) VALUES ('1', 'GUEST', '游客', '2017-10-20 17:09:38', '2017-10-20 17:09:41');

二、准备执行的shell脚本。

我的脚本文件名是:import.sh,内容如下:执行完full.sql之后退出:

mysql -u root --password=你的密码 --database=你的数据库 <full.sql;
exit;

三、后台运行shell脚本。

把日志存在当前目录的 mysql_output.log 下面。

nohup ./import.sh >./mysql_output.log 2>&1 &

运行之后用 ps aux |grep mysql确认一下脚本正在后台运行。

四、exit退出xshell。

在nohup执行之后,该终端必须以exit方式正常退出,若直接退出,有些主机会认为你异常退出而关闭你的进程。

五、重新连接服务器,确认脚本正在运行。

重新连接服务器,用 ps aux |grep mysql确认一下脚本正在后台运行。