从C#复制MySQL数据库
本文关键字:数据库 MySQL 复制 | 更新日期: 2023-09-27 18:00:19
我想使用C#复制/复制数据库。我尝试了以下方式,但它给了我一个错误,说检查mysql语法。
string connStr = "server=localhost;user=root;port=3306;";
MySqlConnection conn = new MySqlConnection(connStr);
MySqlCommand cmd;
string s0;
try
{
conn.Open();
s0 = "mysqldump -h localhost -u root -p testdb | mysql -h localhost -u root -p `"+dbname+"`;";
cmd = new MySqlCommand(s0, conn);
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
MySQL数据库没有密码。有人能告诉我这个代码有什么问题吗?谢谢
您正试图像运行SQL命令一样运行可执行文件。事实并非如此。
mysqldump是存在于文件系统中的可执行文件。要执行此应用程序并以这种方式备份数据库,您必须使用Shell。在C#中,您可以使用System.Diagnostics.Process在进程中运行它。
如果您只使用-p参数编写调用代码,mysqldump将要求输入密码,当然您无法输入密码,因为您不是从命令窗口运行它。
您必须在通话中传递密码,即-pAValidPassword
(无空格)
当然,这是一种非常不安全的方式,因为任何能够访问您代码的人现在都可以访问密码!!
文档