mysql 查看实时_如何查看实时MySQL查询?

这篇博客介绍了如何开启MySQL的常规日志记录,通过编辑my.ini文件并添加'log=development.log',然后使用命令行工具开启日志。作者创建了一个控制台应用,实时输出日志信息,便于查看和分析SQL查询。
摘要由CSDN通过智能技术生成

我一直在寻找同样的方法,并拼凑了各种帖子的解决方案,并创建了一个小型控制台应用程序,以便在写入日志文件时输出实时查询文本 . 这在我的情况下很重要,因为我正在使用MySQL的实体框架,我需要能够检查生成的SQL .

创建日志文件的步骤(其他帖子的一些重复,为简单起见,所有这些都是):

编辑位于以下位置的文件:

C:\Program Files (x86)\MySQL\MySQL Server 5.5\my.ini

将“log = development.log”添加到文件的底部 . (注意保存此文件需要我以管理员身份运行我的文本编辑器) .

使用MySql工作台打开命令行,输入密码 .

运行以下命令以打开将记录所有运行的查询的常规日志记录:

SET GLOBAL general_log = 'ON';

To turn off:

SET GLOBAL general_log = 'OFF';

这将导致运行查询被写入以下位置的文本文件 .

C:\ProgramData\MySQL\MySQL Server 5.5\data\development.log

创建/运行一个控制台应用程序,它将实时输出日志信息:

资源:

using System;

using System.Configuration;

using System.IO;

using System.Threading;

namespace LiveLogs.ConsoleApp

{

class Program

{

static void Main(string[] args)

{

// Console sizing can cause exceptions if you are using a

// small monitor. Change as required.

Console.SetWindowSize(152, 58);

Console.BufferHeight = 1500;

string filePath = ConfigurationManager.AppSettings["MonitoredTextFilePath"];

Console.Title = string.Format("Live Logs {0}", filePath);

var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);

// Move to the end of the stream so we do not read in existing

// log text, only watch for new text.

fileStream.Position = fileStream.Length;

StreamReader streamReader;

// Commented lines are for duplicating the log output as it's written to

// allow verification via a diff that the contents are the same and all

// is being output.

// var fsWrite = new FileStream(@"C:\DuplicateFile.txt", FileMode.Create);

// var sw = new StreamWriter(fsWrite);

int rowNum = 0;

while (true)

{

streamReader = new StreamReader(fileStream);

string line;

string rowStr;

while (streamReader.Peek() != -1)

{

rowNum++;

line = streamReader.ReadLine();

rowStr = rowNum.ToString();

string output = String.Format("{0} {1}:\t{2}", rowStr.PadLeft(6, '0'), DateTime.Now.ToLongTimeString(), line);

Console.WriteLine(output);

// sw.WriteLine(output);

}

// sw.Flush();

Thread.Sleep(500);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值