免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2579 | 回复: 5
打印 上一主题 下一主题

在Shell中执行mysql语句有什么好的方法么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-02 08:52 |只看该作者 |倒序浏览
我的目的是想把mydb数据库中的临时表tmptable备份,然后删除临时表tmptable中的内容。我的脚本是这样的:

  1. #!/bin/sh
  2. filename=`date +%Y-%m-%d|awk '{print $1}'`
  3. /usr/bin/mysqldump -u root --password=1 mydb tmptable | gzip -9 > ./$filename.gz
  4. /usr/bin/mysql -u root --password=1 mydb < "delete from tmptable"
复制代码


不过,好像输入重定向<只能支持从文件中输入,并不能直接把字符串给他。这里有什么好办法解决么?

论坛徽章:
0
2 [报告]
发表于 2007-04-02 09:33 |只看该作者
echo show databases|mysql -uroot -p

论坛徽章:
0
3 [报告]
发表于 2007-04-02 09:34 |只看该作者
解决了!用mysql命令的-e参数即可。不用加<管道了
把最后一行改成/usr/bin/mysql -u root --password=1 mydb --execute="delete from tmptable"就可以了

论坛徽章:
0
4 [报告]
发表于 2007-04-02 09:54 |只看该作者
2个方法皆可

论坛徽章:
0
5 [报告]
发表于 2007-04-03 14:04 |只看该作者
[root@localhost bin]# more sql.sh

a=abc@125.com
./mysql -p123456 -e "update abc.tab_user set email='$a' where userid='test01';"

[root@localhost bin]#

论坛徽章:
0
6 [报告]
发表于 2007-04-03 14:54 |只看该作者
filename=`date +%Y-%m-%d|awk '{print $1}'`
有点搞不明白,这是想表达一个什么意思???
date +%Y-%m-%d
date +%Y-%m-%d|awk '{print $1}'
的结果不是一样的??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP