在华为的时候,还短暂接触和写过shell,调用oracle,后来转入java之后,比较少接触shell,一转眼回过头又要摸shell,去处理mysql,留一点笔记,以备后用。
#!/bin/sh #test.sh HOSTNAME="192.168.11.246" #数据库信息 PORT="3306" USERNAME="root" PASSWORD="password" DBNAME="dw_wbt" TABLENAME="wbt_order_output_detail_copy" echo "Begin execute pro_test_copy" #更新数据 #updatesql="update ${TABLENAME} set qty=123" updatesql="CALL pro_test_copy()" mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${updatesql}" echo "End execute pro_test_copy"
这里面的updatesql可以采用任何方式,可以DML,DDL等操作,也包括function和producre,不建议在shell中传入参数,实在不行可以使用编译语言,然后shell调用java的main脚本,不过需要小心配置GC,在简单调用SQL过程中,发现mysql的命令每次需要执行-e的属性操作,不知道代表啥意思,也不是很在意这些,已经解决了,发个帖,下次用到时候,能够直接拿来主义。