如何后台运行mysql脚本?谢谢

dataat 2007-11-25 01:30:11
我现在在编写一个mysql脚本(假设为a.sql),现在问题是,由于运行时间比较长,而且我是远程ssh登录这台机器server, 如果直接执行a.sql,那就只能让登录的ssh一直开着,只能执行完之后才能关机
能否让a.sql能够在server上运行,而本地的登录机可以关闭?
就类似at命令执行shell脚本类似。
但是我试用了如下的脚本:
mysql;
use netflow;
delete from s2ip_r;
insert into s2ip_r(addr) values(1);
exit;

发现执行mysql命令之后,就直接等待用户操作了,只有用户推出之后才能继续此后的操作。
不知有什么方法能够解决这个问题?请高手指点,谢谢。
...全文
666 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbaby 2007-11-26
  • 打赏
  • 举报
回复
楼上的正确,我们经常这么干,不过用的是oracle (sqlplus)
cceczjxy 2007-11-26
  • 打赏
  • 举报
回复
脚本内容这样写,
mysql<<EOF
use netflow;
delete from s2ip_r;
insert into s2ip_r(addr) values(1);
exit;
EOF

nohup ./a.sql &
这样提交.

dataat 2007-11-25
  • 打赏
  • 举报
回复
有一条mysql 语句 "source /home/lijian/copydata.sql"
用于运行该脚本文件,但是在c语言中,使用如下语句:
sprintf(sqlstring,"source /home/lijian/copydata.sql");
if(mysql_query(&mysql,sqlstring))
{
fprintf(logfile,"error %s:%s\n",sqlstring,mysql_error(&mysql));
return 1;
}

发现没法执行(已经正确链接数据库了),报错信息如下:
error source /home/lijian/copydata.sql:You have an error in your SQL syntax; che
ck the manual that corresponds to your MySQL server version for the right syntax
to use near 'source /home/lijian/copydata.sql' at line 1


这个是什么原因?应该怎么修改?谢谢
dataat 2007-11-25
  • 打赏
  • 举报
回复
楼上的根本就没看明白我说的是什么
直接在命令行运行,我当然知道了,使用at命令就可以了
但是现在是在mysql里面执行不是直接在命令行执行
dataat 2007-11-25
  • 打赏
  • 举报
回复
能说的具体点吗?
谢谢
  • 打赏
  • 举报
回复
试试nohup **** &,我在bsd下都这么干的,呵呵

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧