有没有办法从运行mysql的shell脚本中禁用my.cnf垂直设置?

时间:2011-06-01 15:44:36

标签: mysql shell scripting

因为mysql命令的垂直输出模式非常好,所以我设置环境以将输出默认为垂直布局。我通过创建包含

的c:\ windows \ my.cnf来完成此操作
[mysql]
vertical

令人遗憾的是,我的所有mysql shell脚本也都接受了这个设置,严重破坏了mysql命令的输出。

从shell脚本调用mysql时,是否可以使用命令行开关或SQL来覆盖my.cnf中的垂直设置?

具体来说,我有一个看起来像这样的shell脚本

set SQLFILE=.\cmdelOldRecords.sql
set TMPCKTFILE=.\temp2.sql

:: get all "_aud" tables from database
mysql -h %1 --port=3306 --database=%MYSQL_DB% --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% -B -N -e "show tables like '%%\_aud'" > %TMPCKTFILE%

for /F "tokens=1" %%i in ('type %TMPCKTFILE%') do (
    echo drop table %%i; >> %SQLFILE%
    echo commit; >> %SQLFILE%
)

mysql -h %1 --port=3306 --database=%MYSQL_DB% --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% -B -N < %SQLFILE%

但我的。\ cmdelOldRecords.sql最终会出现像

这样的内容
drop table ***************************; 

2 个答案:

答案 0 :(得分:1)

有-E(或--vertical)开关来使客户端行为垂直 这意味着你可以尝试:

mysql --vertical=false

答案 1 :(得分:0)

您可以通过〜/ .my.cnf文件让您的客户overide the options of my.cnf

我不确定是否可以覆盖所有选项,阅读我发布和/或试验的手册页会告诉您。