mysql
命令行工具中的 -e
参数允许你在不进入 mysql>
交互式命令行界面的情况下直接执行一条或多条SQL语句。这在自动化脚本或者需要快速执行SQL命令的场景中非常有用。下面是一些使用 -e
参数的示例:
单条SQL命令
示例1:查询版本
mysql -u username -p -e "SELECT VERSION();"
这个命令将会连接到MySQL服务器,执行 SELECT VERSION();
查询MySQL的版本号,然后立即退出并显示结果。
示例2:创建数据库
mysql -u username -p -e "CREATE DATABASE my_new_db;"
此命令用于创建一个名为 my_new_db
的数据库。
多条SQL命令
如果你需要执行多条SQL命令,可以将它们用分号 ;
隔开,并用单引号 ' '
或双引号 "
包裹整个命令串。但是,需要注意的是,在某些Shell环境中,你可能需要对内部的分号进行转义或使用特殊的引号处理规则。
示例3:创建数据库并选中
mysql -u username -p -e "CREATE DATABASE IF NOT EXISTS test_db; USE test_db;"
这个命令首先检查 test_db
是否存在,如果不存在则创建,并紧接着选中该数据库。
带有变量和特殊字符的命令
对于包含特殊字符或需要使用环境变量的命令,需要更细致的处理。
示例4:使用环境变量和转义
假设你有环境变量设置数据库名,可能需要这样写:
mysql -u $DB_USER -p$DB_PASS -e "CREATE DATABASE \$DB_NAME;"
注意这里 $DB_NAME
前的 \
是为了在Bash中防止变量提前展开,确保它是作为字符串的一部分传递给 mysql
命令。
结合其他参数
-e
参数通常与其他参数一起使用,比如 -h
指定主机名,-P
指定端口,-p
后跟密码(或直接在 -p
后无空格输入密码)等。
示例5:远程执行
mysql -h remote_host -u admin_user -pSuperSecretPassword -e "SHOW DATABASES;"
这个命令会连接到远程主机 remote_host
上的MySQL服务器,使用用户名 admin_user
和指定的密码,然后展示所有数据库。
通过这些示例,你可以看到 -e
参数如何使得在脚本或命令行中直接执行MySQL命令变得简单而直接。