在Shell脚本中调用MySQL存储过程

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 存储过程,那就太好了。

arc*_*123 5

您可以尝试使用 mysql 命令来调用它:

\n\n
mysql -u root \xe2\x80\x93ppassword -e 'call test_procedure();' Databasename\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以在后面加上 a> out.txt将输出捕获到文件中。

\n


use*_*372 5

你可以尝试下面的方法。

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