Я использую Percona Server (форк MySQL) на Ubuntu. Пакет (скорее всего, обычный пакет MySQL также) поставляется с учетной записью обслуживания, которая называется debian-sys-maint
. Чтобы эта учетная запись использовалась, учетные данные создаются при установке пакета; и они хранятся в /etc/mysql/debian.cnf
.
И теперь сюрприз: Симметричная ссылка /root/.my.cnf
, указывающая на /etc/mysql/debian.cnf
, также устанавливается.
Этот файл является an option file автоматически читает при использовании mysql
или mysqldump
. Таким образом, в основном у вас тогда были введенные учетные данные дважды - в этом файле и в командной строке. Это была проблема, которую я имел.
Таким образом, одним из способов избежать этого условия является использование опции --no-defaults
для mysqldump
. Файл опции затем не будет считан. Однако вы предоставляете учетные данные через командную строку, поэтому каждый, кто может выдать ps
, может действительно увидеть пароль после запуска резервного копирования. Поэтому лучше всего создать собственный файл с именем пользователя и паролем и передать его mysqldump
через --defaults-file
.
Вы можете создать файл параметров с помощью mysql_config_editor
или просто в любом редакторе.
mysqldump
Запуск через sudo
из командной строки, как root
работает, только потому, что sudo
обычно не меняется $HOME
, так .my.cnf
не найден, то. При работе в качестве кроны, это так.
Что делать, если вы используете полный путь для 'mysqldump' и' gzip'? – fedorqui
Вы планируете эту работу каждую минуту? –
@fedorqui Я пробовал использовать:/usr/bin/mysqldump/usr/local/gnu/gzip, но это то же самое. – xspecial