我正在寻找一种方法来减少检查 mysql 条目和其他内容所需的输入量。例如,我想创建一个 .bat 文件来执行以下命令。
mysql -u user -p
*enter in the password*
USE databasename
SELCT * FROM table;
问题是,在初始 mysql -u user -p 之后,写下的其余命令都不会执行。在调用 mysql 或其他程序之后,是否可以继续运行命令,这些程序似乎将其前缀(?) 添加到命令的开头 (mysql>)。我不太熟悉这些术语,所以如果听起来令人困惑,请原谅我。我也想将同样的概念用于其他事物。
非常感谢您的帮助,谢谢。
答案1
您可以以批处理模式运行 mysql,如文档。
mysql -h host -u user -p < batch-file
基本上,您使用包含所有命令的文件作为输入参数 - mysql 将执行该文件的内容。
编辑:如果您想即时构建查询,您可以始终让批处理文件将查询写入临时文件,然后您可以加载该文件以供 mysql 执行。例如:
echo show tables from test > C:\path\to\file.sql
mysql -h host -u user -p < C:\path\to\file.sql
答案2
运行mysql
-e 选项:
mysql -h host -u user -p -e 'SHOW TABLES FROM test'
答案3
也许您可能想尝试一下该论坛中其他问题中出现的一个小技巧(不幸的是已被删除)。
您可以直接在命令下方的行中插入命令的输入,然后执行该文件(不是作为批处理文件),而是作为 cmd.exe 的输入(这类似于这里的文件在 Unix 中)。 例如:
脚本.TXT:
@echo off
mysql -u user -p
*enter in the password*
USE databasename
SELCT * FROM table;
EXIT
echo Exit from MYSQL...
按照以下方式执行前面的“脚本”:
cmd < 脚本.TXT
如果您执行此测试,请报告结果...
安东尼奥
答案4
你可以写如下内容
mysql -u dbUsername yourDatabase -e "SELECT * FROM table;"
或者要运行重复任务,请创建一个 runtasks.bat 文件,将其保存在项目的根目录下,然后在里面写入你的 cmd 任务
mysql -u dbUser -e "DROP DATABASE IF EXISTS testDatabase;"
mysql -u dbUser -e "CREATE DATABASE testDatabase;"
php index.php migration latest #
cd application\tests
phpunit