开发者

Is there a way to disable my.cnf vertical setting from a shell script running mysql?

Because the vertical output mode of the mysql command is very nice, I've setup my environment to default the output to vertical layout. I've done this by creating c:\windows\my.cnf that contains

[mysql]
vertical

Regrettably, all my mysql shell scripts also pick up on this setting, wreaking havoc with parsing the output of the mysql command.

Is there command-line switch or SQL I can use to override the vertical setting in my.cnf when invoking mysql from a shell script?

Specifically, I have a shell script that looks something like this

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

:: get all "_aud" tables from database
mysql -h %1 --port=3306 --dat开发者_开发百科abase=%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%

But my .\cmdelOldRecords.sql ends up with stuff like

drop table ***************************; 


there is the -E (or --vertical) switch to get the client act vertical this means you could try:

mysql --vertical=false


You can have your client overide the options of my.cnf by having a ~/.my.cnf file.

I am not sure that all options can be overriden, reading the man page I posted and/or experimenting will tell you.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜