【问题标题】:Log Rotation MySQL Windows Batch日志轮换 MySQL Windows 批处理
【发布时间】:2015-02-18 13:07:54
【问题描述】:

我被要求为安装在 Windows 机器上的 mysql 中的慢速日志打开日志轮换。
由于我对 mysql 的经验是 almpust 等于 0 我想知道你们是否可以提供帮助。我正在尝试创建一个将每周在任务调度程序中执行的批处理。所以我想知道我是否可以在不重新启动 mysql 服务的情况下轮换日志。

我知道我会执行:
SET GLOBAL general_log = 'OFF';
设置全局 slow_query_log = 'OFF';
重命名日志
设置全局 general_log = 'ON';
设置全局 slow_query_log = 'ON';

现在如何批量执行?

【问题讨论】:

    标签: mysql winforms batch-file


    【解决方案1】:
    mysql -u "..." -p "..." -e "SET GLOBAL general_log = 'OFF';" db_name
    mysql -u "..." -p "..." -e "SET GLOBAL slow_query_log = 'OFF';" db_name
    ren log_file log_file_old
    mysql -u "..." -p "..." -e "SET GLOBAL general_log = 'ON';" db_name
    mysql -u "..." -p "..." -e "SET GLOBAL slow_query_log = 'ON';" db_name
    

    或将语句放入.sql 文件和

    mysql -u "..." -p "..." db_name < disable_logging.sql
    ren log_file log_file_old
    mysql -u "..." -p "..." db_name < enable_logging.sql
    

    【讨论】:

    • 谢谢,但它不起作用,似乎有问题。键入 mysql.exe -u "root" -p "pass" NameOfDb 似乎不起作用,我会考虑返回用户的问题或通过但不,它就像忽略所有参数一样,它返回所有mysql 的参数,就像我会简单输入 mysql.exe 一样
    • 尝试使用--user--password--database--execute 选项。还要检查option files
    • 谢谢 Dmitry,我已经执行了下一个命令,它要求我输入密码,似乎命令中设置的密码被忽略了,它被用作数据库名称:“c:\Program Files (x86)\MySQL\MySQL Server 5.5\bin\mysql.exe" --user root --password testpass --database testdb --execute "SET GLOBAL slow_query_log = 'ON';" ||输入密码:******** ||错误 1049 (42000): 未知数据库 'testpass'
    • 试试mysql --user=root --password=testpass --execute="SET SET GLOBAL slow_query_log = 'ON';"
    • ERROR 1045 (28000): Access denied for user root'@'localhost'(使用密码:YES)
    猜你喜欢
    • 2016-09-21
    • 2011-04-01
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2014-08-22
    • 2012-10-19
    相关资源
    最近更新 更多