从BAT脚本执行SQL文件

时间:2014-11-23 02:40:44

标签: mysql windows batch-file

我创建了一个批处理脚本,它应该在同一目录中执行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

2 个答案:

答案 0 :(得分:0)

您没有说明您使用的操作系统。看起来您正在尝试将输出文件写入&#34; \ Program Files(x86)&#34;目录。作为安全措施,Windows不允许用户写入该文件区域。您需要转到&#34; D:\ Program Files(x86)\ TCAdmin控制面板\ ScheduledTasks \ GAME \&#34;的安全设置。文件夹,并确保运行bat / script文件的用户具有该文件夹的写访问权。

答案 1 :(得分:0)

您的文件组织不正确。请按如下方式重做文件:

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';

试一试!!!

相关问题