У каждого пользователя есть доступ к базе данных, к которой ему были предоставлены права доступа, поэтому, если вы дали mysqldump
указание сбросить все базы данных: --all-databases
резервная копия была бы создана только для базы данных этого пользователя и, конечно, все общие базы данных, к которым он имеет доступ. Обычно это information_schema
только. Фактически это не делает размер дампа намного большим - никакая информация из этой схемы не сбрасывается - потому что там есть динамическая информация.
Таким образом, обеспечивая привилегии для каждого пользователя - у вас есть простое решение для резервного копирования баз данных этих пользователей, просто выгрузив «все базы данных».
mysqldump: укажите имя базы данных для каждого пользователя в ~ / .my.cnf
Я использую общий сервер с несколькими пользователями. Каждый пользователь имеет свою собственную базу данных в MySQL и соответствующие учетные данные. Я создал шаблон systemd timer & service (т.е. sitetasks @ .timer & sitetasks @ .service ) для ежедневного запуска mysqldump для резервного копирования базы данных каждого пользователя. Информация о пользователе читается mysqldump из файла .my.cnf в домашнем каталоге каждого пользователя.
Затем я могу запустить системный таймер / службу для конкретного пользователя (например, sitetasks@user1.service ), чтобы создать резервную копию базы данных этого пользователя.
Тем не менее, я не могу найти способ указать имя базы данных в .my.cnf . Я посмотрел на параметр --databases, но это просто флаг, а не способ указать базу данных или набор баз данных.
Я могу придумать несколько способов решить это по-разному:
- создать пользовательский системный таймер / сервис - но это не очень хорошо масштабируется
- поместите файл .db-name в домашний каталог пользователей и прочитайте его при вызове mysqldump (что-то вроде mysqldump $ (cat .db-name)> backup.sql) - но теперь мне нужен дополнительный файл
- похож на # 2, но анализирует wp-config.php каждого пользователя (базы данных для Wordpress)
- убедитесь, что имя базы данных всегда совпадает с именем пользователя
Однако ни один из них не является настолько масштабируемым и переносимым, как возможность использования существующего файла параметров MySQL .my.cnf .
Есть ли способ указать имя базы данных по умолчанию в .my.cnf ?
1 ответ на вопрос
Похожие вопросы
-
3
OpenX: mySql VS PostgreSQL
-
4
Каков наилучший способ преобразования базы данных MySQL в базу данных доступа?
-
3
Как я могу автоматически сгенерировать файл Xorg.config?
-
-
1
ArchLinux в VirtualBox дает сбой (хост Ubuntu)
-
1
Синхронизация двух (ВМ) систем Linux
-
6
Как остановить запуск служб при загрузке в Ubuntu?
-
8
Сложно ли установить Arch linux? Есть ли советы, как сделать это быстрее и проще?
-
2
Как мне восстановить мою базу данных?
-
6
MySQL установлен по умолчанию с OS X Leopard 10.5 или 10.6
-
1
восстанавливать ext3 разделы с помощью windows?