Я новичок в базах данных и MySQL и все еще участвую в процессе обучения. Мне было поручено выяснить, можно ли хранить каталог данных MySQL в сетевом диске... Цель состоит в том, чтобы иметь резервную копию каталога и позволять нескольким пользователям указывать на этот конкретный каталог.
Мне удалось успешно переместить каталог данных в другое место на моем ПК, но они не увенчались успехом, когда я попытался переместить каталог данных в сетевой диск.
Возможно ли переместить каталог данных в общий сетевой диск, и если да, то какие шаги следует предпринять?
Заметки:
Возможно, ваш подход не является оптимальным, или я не понимаю вопроса (или тот, кто дал вам задачу, не ясен в отношении лучших способов резервного копирования баз данных MySQL). Если бы я был вами, я бы поставил его тем, кто просил вас выполнить эту задачу, что создание дампов с открытым текстом SQL (*.sql
) баз данных и помещение их в каталог резервного копирования было бы проще/проще, чем сделать резервную копию сам каталог данных, который содержит двоичные представления файлов баз данных.
На странице руководства MySQLdump:
Чтобы сбросить все базы данных:
$ mysqldump --all-databases > dump.sql
Чтобы сбросить только определенные базы данных, назовите их в командной строке и используйте параметр
--databases
:
$ mysqldump --databases db1 db2 db3 > dump.sql
Параметр --databases
заставляет все имена в командной строке рассматриваться как имена баз данных. Без этой опции mysqldump
обрабатывает первое имя как имя базы данных и те, которые следуют за именами таблиц.
С
--all-databases
или--databases
mysqldump
записывает операторыCREATE DATABASE
иUSE
перед выводом дампа для каждой базы данных. Это гарантирует, что когда файл дампа перезагружается, он создает каждую базу данных, если она не существует, и делает ее базой данных по умолчанию, поэтому содержимое базы данных загружается в ту же базу данных, с которой они пришли. Если вы хотите, чтобы файл дампа--add-drop-database
каждой базы данных до ее воссоздания, используйте параметр--add-drop-database
. В этом случаеmysqldump
записывает операторDROP DATABASE
предшествующий каждому операторуCREATE DATABASE
.Чтобы сбросить одну базу данных, назовите ее в командной строке:
$ mysqldump --databases test > dump.sql
Упражнение для читателя: напишите сценарий (crontab) или настройте запланированную задачу, чтобы сбросить базы данных и переместить вывод на сетевой диск.
Если это не то, что требуется, но доступ к базе данных несколькими людьми заключается в создании учетных записей пользователей с использованием СУБД MySQL Server. (Возможно, вам потребуется настроить сервер для удаленного доступа. В этом случае удалите все test
или anonymous
/blank password
учетные записи blank password
и измените пароль root на более безопасный, чем root
, admin
или password1
.)