我创建了一个批处理脚本,它应该在同一目录中执行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
答案 0 :(得分:0)
您没有说明您使用的操作系统。看起来您正在尝试将输出文件写入&#34; \ Program Files(x86)&#34;目录。作为安全措施,Windows不允许用户写入该文件区域。您需要转到&#34; D:\ Program Files(x86)\ TCAdmin控制面板\ ScheduledTasks \ GAME \&#34;的安全设置。文件夹,并确保运行bat / script文件的用户具有该文件夹的写访问权。
答案 1 :(得分:0)
您的文件组织不正确。请按如下方式重做文件:
@echo off
mysql --host=localhost --user=dbuser --password=dbpassword --database=dbname < script.sql
pause
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';