【问题标题】:Is there a way to disable my.cnf vertical setting from a shell script running mysql?有没有办法从运行 mysql 的 shell 脚本中禁用 my.cnf 垂直设置?
【发布时间】:2011-06-01 15:44:36
【问题描述】:

因为 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 ***************************; 

【问题讨论】:

    标签: mysql shell scripting


    【解决方案1】:

    有一个-E(或--vertical)开关可以让客户端垂直操作 这意味着您可以尝试:

    mysql --vertical=false
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-29
        • 1970-01-01
        相关资源
        最近更新 更多