我正在编写一个Windows程序来不断地将本地从数据库同步到主数据库。我有一个名为nsbm_syncdb的主数据库。如果我想同步从数据库,我必须编写以下查询。
CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='nsbm_root',
MASTER_PASSWORD='1234',
MASTER_LOG_FILE='mysql-bin.0000xx',
MASTER_LOG_POS=234;对于上面的代码,我应该从主数据库中输入MASTER_LOG_FILE和MASTER_LOG_POS的值,输入查询"SHOW MASTER STATUS"。
如何使用MySql查询从主数据库检索日志位置和日志文件名?
我上网了,但还没有找到一个查询。
发布于 2018-02-13 05:03:28
您可以使用mysqldump程序(随MySQL一起提供)和-主-数据=2选项。
这将将完整的CHANGE MASTER ...命令写入输出。
发布于 2018-02-14 10:56:37
我们可以在windows服务程序中编写C#代码来访问SHOW MASTER STATUS表的值。这不是一张现有的桌子。因此,我们必须创建一个DataTable,并在其中填充SHOW MASTER STATUS的细节。
string master_log_file = null;
long master_log_pos = 0;
using (MySqlConnection con = new MySqlConnection(conStrM))
{
using (MySqlCommand cmd = new MySqlCommand("SHOW MASTER STATUS", con))
{
cmd.CommandType = CommandType.Text;
using (MySqlDataAdapter sda = new MySqlDataAdapter(cmd))
{
if (sda != null)
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
foreach (DataRow row in dt.Rows)
{
master_log_file = row["File"].ToString();
master_log_pos = Convert.ToInt64(row["Position"]);
}
}
}
}
}
}从上面的代码中我们可以得到master_log_file和master_log_pos。
https://stackoverflow.com/questions/48759721
复制相似问题