use*_*151 2 mysql shell stored-procedures
想要在shell脚本中执行MYSQL存储过程
示例:Employee_config ('ClientId','Data')是 mysql 中的过程名称。
当我尝试输入如下所示的 shell 脚本时
CALL Employee_config ('ClientId','Data') we are getting CALL: command not found
EXECUTE Employee_config ('ClientId','Data') we are getting EXECUTE: command not found
Run Code Online (Sandbox Code Playgroud)
如果有人可以更新如何从 shell 脚本调用 MySQL 存储过程,那就太好了。
您可以尝试使用 mysql 命令来调用它:
\n\nmysql -u root \xe2\x80\x93ppassword -e 'call test_procedure();' Databasename\nRun Code Online (Sandbox Code Playgroud)\n\n您可以在后面加上 a> out.txt将输出捕获到文件中。
你可以尝试下面的方法。
myscript.sh
#!/usr/bin/bash
#Script to run automated sql queries
#Declaring mysql DB connection
MASTER_DB_USER='root'
MASTER_DB_PASSWD='root'
MASTER_DB_PORT='3160'
MASTER_DB_HOST='192.168.0.0'
MASTER_DB_NAME='MyDB'
startDate='2018-03-09'
endDate='2018-03-09'
#Prepare sql query
SQL_Query1='select * from mytable limit 1'
SQL_Query2='call carServicedQry'
SQL_Query3='call carServicedQry2("2018-03-09","2018-03-09")'
#mysql command to connect to database
MYSQL -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -D$MASTER_DB_NAME <<EOF
$SQL_Query2
EOF
echo "End of script"
Run Code Online (Sandbox Code Playgroud)
并像这样执行脚本
./myscript.sh