我的批处理文件将包含如下内容:
set MUSER=root
set MPASS=xprd123
set MHOST=172.33.49.55
set DB=DBName1
set MBIN=C:\Program Files\MySQL\MySQL Server 5.5\bin
set scriptpath=D:/Graph_draw/ASSET_Creation/EXTERNAL/MYSQL_STATS_COLLECTOR/foldrname1
"%MBIN%\mysql.exe" -u"%MUSER%" -p"%MPASS%" -h "%MHOST%" "%DB%" -e "set @2:='%scriptpath%'; source DBQuery1.sql;"
DBQuery1.sql 的内容将是:
SELECT 'INNODB_OS_LOG_WRITTEN','QUESTIONS'
UNION
select MAX(IF(variable_name = 'INNODB_OS_LOG_WRITTEN', VARIABLE_VALUE, NULL))
AS INNODB_OS_LOG_WRITTEN, MAX(IF(variable_name = 'QUESTIONS', VARIABLE_VALUE, NULL))
AS QUESTIONS from information_schema.GLOBAL_STATUS INTO OUTFILE '@2/Stats.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
我不确定这是将路径传递给 DBQuery1.sql 中的 SELECT 查询的方法。
此代码不起作用。
我得到的错误是:
ERROR 1 (HY000) at line 1 in file: 'DBQuery1.sql': Can't create/write to file 'C
:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\Data\
@2\Stats.csv' (Errcode: 2)
我查看了有关将路径传递给批处理文件的其他帖子,但无论我尝试了什么,我都无法解决这个问题。
当我执行批处理文件时,我不确定路径是否传递到 sql 文件中,如果是,为什么 @2 没有传递路径。
有人可以帮忙吗?
更新 :
为了补充我上面给出的细节,我发现传递的路径是在 sql 文件中接收的。
我打印了这样的变量输出:
**SELECT @2;**
SELECT 'INNODB_OS_LOG_WRITTEN','QUESTIONS'
UNION
select MAX(IF(variable_name = 'INNODB_OS_LOG_WRITTEN', VARIABLE_VALUE, NULL)) AS INNODB_OS_LOG_WRITTEN,
MAX(IF(variable_name = 'QUESTIONS', VARIABLE_VALUE, NULL)) AS QUESTIONS
from information_schema.GLOBAL_STATUS
INTO OUTFILE '@2\Stats.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';
我得到的输出是:
+------------------------------------------------------------------------+
| @2 |
+------------------------------------------------------------------------+
| D:/Graph_draw/ASSET_Creation/EXTERNAL/MYSQL_STATS_COLLECTOR/foldrname1 |
+------------------------------------------------------------------------+
ERROR 1 (HY000) at line 2 in file: 'DBQuery1.sql': Can't create/write to file 'C
:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\Data\
@2\Stats.csv' (Errcode: 2)
这意味着@2 没有获取 '@2\Stats.csv' 中的值,而是 SELECT @2; 在 sql 中获取值。
有什么帮助吗?