后台运行导入数据库


这周遇到一个情况:需要将大数据量的sql数据导入到数据库中,由于时间很长,不能一直开着终端连着筋服务器,所以就想到了后台运行进程的方法

  • 其实后台运行方法很简答,nohup命令让进程不挂起,末尾加上&来后台运行。

  • 举例:nohup /opt/haha.sh & 后台运行脚本

  • 数据库导入后台运行:
  • 导入数据库命令:nohup Mysql -uroot -p密码 库名< sql文件地址 &
  • 讲道理没有毛病,但是报错,说不能在终端上显示密码,这样不安全,处理办法:将密码写入数据库配置文件/etc/my.cnf,添加如下内容

[client]
user=root
password=***
  • 导入数据库命令:Mysql 库名< sql文件地址 &
  • 后台运行:nohup Mysql 库名< sql文件地址
  • 讲道理是没毛病了,那就关闭终端试一下,重新打开,通过ps -ef查看进程,结果进程关闭了。
  • 我以为nohup不起作用,所以编写了一个死循环脚本,关闭终端后确是可以运行的,所以问题可能出在数据库导入的 < 这个符号。
  • 通过搜索nohup怎么处理 < ,查到一片博客跟我相似问题,他的解决方法是,不能直接关闭终端,而是在nohup命令之后通过exit退出,不然会断掉该进程所对应的session,导致nohup对应的进程被通知一起shurdown。结果他是对的。

总结

  • 排出多种可能,最后就能找到原因所在。

猜你喜欢

转载自www.cnblogs.com/xushun/p/11261669.html