Shell脚本登录MySQL执行多个语句输出多个结果

在日常工作中,我们经常需要登录到MySQL数据库中执行一系列的操作,如创建表、插入数据、查询数据等。为了提高效率并避免重复操作,我们可以编写一个Shell脚本来批量执行这些操作。
准备工作
在编写Shell脚本之前,我们需要做一些准备工作:
- 确保已经安装了MySQL数据库,并且知道数据库的用户名和密码;
- 创建一个新的数据库,并创建一些表用来演示脚本的执行过程;
- 编辑一个包含多个SQL语句的文本文件,用来作为Shell脚本的输入。
编写Shell脚本
接下来,我们将编写一个Shell脚本来登录MySQL并执行多个SQL语句,最后输出多个结果。
#!/bin/bash
# MySQL数据库信息
HOST="localhost"
USER="root"
PASSWORD="password"
DATABASE="mydb"
# SQL语句文件
SQL_FILE="sql_script.sql"
# 登录MySQL并执行SQL语句
mysql -h HOST -uUSER -pPASSWORDDATABASE < SQL_FILE
# 查询结果
echo "查询结果一:"
mysql -hHOST -u USER -pPASSWORD DATABASE -e "SELECT * FROM table1;"
echo "查询结果二:"
mysql -hHOST -u USER -pPASSWORD $DATABASE -e "SELECT * FROM table2;"
在上面的Shell脚本中,我们首先定义了MySQL数据库的连接信息和要执行的SQL语句文件。然后使用mysql命令登录到MySQL数据库并执行SQL_FILE中的SQL语句。最后,使用mysql命令再次查询数据库并输出。
SQL语句文件示例
我们可以创建一个名为sql_script.sql的文件,内容如下:
CREATE TABLE table1 (
id INT PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO table1 VALUES (1, 'Alice');
INSERT INTO table1 VALUES (2, 'Bob');
CREATE TABLE table2 (
id INT PRIMARY KEY,
age INT
);
INSERT INTO table2 VALUES (1, 30);
INSERT INTO table2 VALUES (2, 25);
以上SQL语句文件包含了创建两个表table1和table2,以及向这两个表插入数据的操作。
运行Shell脚本
完成以上准备工作后,我们可以打开终端,运行编写好的Shell脚本来登录MySQL数据库执行多个SQL语句,并输出多个结果。
$ bash mysql_script.sh
运行结果可能如下所示:
查询结果一:
+----+-------+
| id | name |
+----+-------+
| 1 | Alice |
| 2 | Bob |
+----+-------+
查询结果二:
+----+-----+
| id | age |
+----+-----+
| 1 | 30 |
| 2 | 25 |
+----+-----+
以上就是使用Shell脚本登录MySQL执行多个语句并输出多个结果的详细步骤。
极客教程