注意:实际上是两个问题...
当我使用二进制文件转储 mysql 数据库时,mysqldump
我得到一个包含(除其他行外)以下内容的文件:
CREATE DATABASE /*!32312 IF NOT EXISTS*/
MyDatabase/*!40100 DEFAULT CHARACTER SET utf8 */;
我在 Google 和 MySql 参考资料上进行了搜索,但找不到 /*!32312 的含义以及它们的工作原理。我只能猜测它们是有条件的评论。比如如果构建> 32312,执行“如果不存在”?
任何人都可以对此有所了解吗?
我想知道这一点的原因是因为我无法在 C# 客户端中使用转储的内容作为 1 查询执行还原。使用此代码:
MySqlConnection msc = default(MySqlConnection);
MySqlCommand cmd = default(MySqlCommand);
MySqlTransaction mst = default(MySqlTransaction);
try
{
//Create a connection to the database
msc = new MySqlConnection(ConnectionString);
msc.Open();
//Creata a MySql Transaction
mst = msc.BeginTransaction();
cmd = msc.CreateCommand();
cmd.Transaction = mst;
cmd.CommandText = ContentsOfMySqlDumpSql;
cmd.ExecuteNonQuery();
mst.Commit();
}
我真的必须将mysql作为带有命令行参数的进程来恢复转储吗?因为我真的想在 C# 客户端中使用它作为 SQL 查询来完成转储的恢复,因为它比控制 mysql 二进制文件输出和退出代码等更方便......