【问题标题】:Executing an SQL file from BAT script从 BAT 脚本执行 SQL 文件
【发布时间】:2014-11-23 02:40:44
【问题描述】:
我创建了一个批处理脚本,它应该在同一目录中执行 SQL 文件,然后暂停,我连接到 MYSQL 并在 SQL 文件中发出命令。出于某种原因,当我将这些行直接粘贴到命令窗口时,它工作正常。当我进行如下设置时,我收到拒绝访问错误。谁能指出我做错了什么?
BAT 文件:
cmd < script.sql
pause
Script.SQL 文件
@echo off
mysql --host=localhost --user=dbuser --password=dbpassword --database=dbname
SELECT `SERVER_ID`
FROM tc_services
WHERE `GAME_ID` LIKE '%TC510254610%'
INTO OUTFILE 'D:\\Program Files (x86)\\TCAdmin Control Panel\\ScheduledTasks\\GAME\\ServerID.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
exit
【问题讨论】:
标签:
mysql
windows
batch-file
【解决方案1】:
您的文件组织不正确。请按如下方式重做文件:
BAT 文件:
@echo off
mysql --host=localhost --user=dbuser --password=dbpassword --database=dbname < script.sql
pause
script.sql 文件
SELECT `SERVER_ID`
FROM tc_services
WHERE `GAME_ID` LIKE '%TC510254610%'
INTO OUTFILE 'D:\\Program Files (x86)\\TCAdmin Control Panel\\ScheduledTasks\\GAME\\ServerID.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
试试看!!!
【解决方案2】:
您没有说明您使用的是什么操作系统。看起来您正在尝试将输出文件写入“\Program Files (x86)”目录。作为一项安全措施,Windows 不允许用户写入该文件区域。您需要转到“D:\Program Files (x86)\TCAdmin Control Panel\ScheduledTasks\GAME\”文件夹的安全设置,并确保运行 bat/script 文件的用户对该文件夹具有写入权限。