mysql是用的.sh写的脚本,执行后提示没有命令

可以执行建库和表,但是没法插入数据,一执行脚本就提示没有命令;
insert_sql="insert into ${TABLENAME} values (1,'cai','male','131623456','t416',4),(2,'shijun','male','131123456','t416',4),(3,'shi','male','131323456','t416',4),(4,'huang','male','131423456','t416',4),(5,'zhangtao','male','131223456','t416',4),(6,'dai','male','131234561','t416',4),(7,'xiao','male','131564123','t416',4),(8,'zhangzhen','male','131123654','t416',4),(8,'hou','male','131123465','t416',4),(10,'wang','male','131123456','t416',4)"
msyql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e " ${insert_sql} "

./mysql$$shell.sh: line 17: msyql: command not found

在Shell中执行mysql的脚本,这里介绍比较容易使用的一种方法
首先写好sql的脚本,后缀为.sql,比如
sql_file.sql:内容如下
#这是SQL的脚本
create table if not exists test_sql(id int(10),name varchar(20));
insert into test_sql values(1,'正餐');
select * from test_sql;

很简单的创建、插入、查询
之后shell的脚本,内容如下
#!/bin/bash #这是执行SQL的脚本,传入数据库表,和SQL文件名即可
name=$1
file_name=$2
cd /opt/lampp/bin ./mysql -uroot -p123456 <<EOF
use ${name};
source ${file_name};
EOF

./mysql -uroot -p123456是进入mysql的命令,前面的路径可以改成自己的绝对路径
<< EOF EOF 中间可以写出任意的mysql脚本
其中,如果要执行某个.sql的命令,直接用 source 脚本.sql 即可执行该脚本上面的命令,这里使用的是source sql_file.sql
此外,如果在mysql中需要执行shell脚本
可以在EOF中 ./mysql -uroot -p123456<<EOF \! sh shell.sh EOF
前面加上 !\ +linux中执行的shell命令即可
温馨提示:答案为网友推荐,仅供参考
相似回答