Я обнаружил, что до тех пор, пока соединение устанавливается с определенной базой данных и выполняется оператор, файлы базы данных заняты MySQL. Я не могу удалить или сжать файл базы данных. Помимо перезапуска службы MySQL, есть ли другой способ выпустить блокировку MySQL в файлах? Я подтвердил, что мой код правильно обрабатывает закрытие и утилизацию соединений и команд. 41. PrettyPrint-Override ">
Код: Выделить всё
using (MySqlConnection conn = new MySqlConnection(builder.ToString()))
{
conn.Open();
using (MySqlCommand command = new MySqlCommand("UPDATE cq_config SET data1 = 1 WHERE type = 0", conn))
{
command.ExecuteNonQuery();
}
conn.Close();
}
< /code>
Конкретное содержание оператора SQL здесь не важно. До выполнения я проверил с помощью монитора ресурсов, что CQ_CONFIG
не был занят какой -либо программой. После выполнения CQ_CONFIG.MYI и CQ_CONFIG.MYD были заняты MySQLD.Exe. Мне часто нужно копировать базы данных из других отделов, поэтому я не могу потребовать, чтобы другие могли обновить MySQL. Мой инструмент похож на Navicat, с некоторыми дополнительными функциями. Из -за специального кодирования базы данных официальные инструменты управления базами данных не подходят для меня, хотя Navicat работает, но это коммерческое программное обеспечение. Я могу управлять локальной базой данных, поэтому, если проблема занятости файла mySQL не может быть решена, я могу рассмотреть возможность предоставления кнопки, чтобы позволить пользователям удобно перезагрузить службу MySQL после клонирования базы данных, чтобы освободить занятие файла, хотя этот метод немного кажется немного глупый.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... able-files