Linux系统命令行执行MySQL脚本

利用Linux系统脚本执行MySQL的sql脚本方法有很多,这里抽取两种已经验证过的方法(验证环境:麒麟3.3+,centos7,MySQL 8)举例。

第一种:利用管道符调用SQL文件:

脚本(假设账号为:root,密码为:123456,SQL文件绝对路径名称为:/home/test.sql):

mysql -uroot -p123456 < /home/test.sql

sql文件的类容:

若需要操作名称为“testDB”的库,查询名称为“text”的表的所有数据:
use testDB;
select * from text;
exit;
以上sql语句第一句的意思为:操作名称为“testDB”的库,第二句的意思为:查询名称为“text”的表的所有数据,第三句的意思为:退出SQL操作。

第二种:利用shell脚本中MySQL提示符调用SQL:

利用Mysql的提示符,可以将需要执行的sql语句及shell脚本写到.sh文件中,然后执行.sh文件即可执行相关的shell脚本及SQL语句,(假设要执行的脚本名称为run.sh,账号为:root,密码为:123456)相关写法如下:

#!/bin/bash
mysql -uroot -p123456 <<EOF
use testDB;
select * from text;
EOF 
exit;

以上sql语句的意思为:登入数据库,操作名称为“testDB”的库,查询名称为“text”的表的所有数据,退出SQL操作。

推荐采用第一种方法,执行完sql后,可以检测shell的错误输出以判断是否执行完毕。除了常规SQL语句外,脚本或文件中还可以创建存储过程,以编写一些较为复杂的SQL逻辑,但除了超级复杂的联表查询以外,不建议在数据库中保存太多的存储过程,尽量把业务逻辑移到代码层中,以减轻数据库压力。

可以参考以下链接学习SQL存储过程的用法:
https://www.cnblogs.com/geaozhang/p/6797357.html

你可能感兴趣的:(Linux系统命令行执行MySQL脚本)