Назад | Перейти на главную страницу

MySQLDump - есть ли способ ввести пароль с помощью -p или --password?

У меня есть сервер Ubuntu с MySQL.

В командной строке это работает

  mysqldump -u root -p paydaydebt

(тогда мне нужно вручную ввести пароль)

В командной строке они не работают:

mysqldump -u root -p{password} paydaydebt 
mysqldump -u root --password={password} paydaydebt

Можно ли как-нибудь ввести пароль с помощью -p или --password?

Вам следует не. Учитывая пароль в командной строке, это зло, так как это видно всем, кто запускает ps или top.

Рекомендуемый способ - указать пароль в отдельном файле, а затем добавить переключатель командной строки. --defaults-extra-file=/etc/mysql/mysqlpassword.cnf

В mysqlpassword.cnf затем содержит (только):

[mysqldump]
# The following password will be sent to mysqldump 
password="ThisIsThePassword"

Убедитесь, что этот файл доступен для чтения только пользователю, выполняющему mysqldump (предпочтительно root).

Не оставляйте пробел между -p и паролем, который вы передаете mysqldump. Если вы все же поставите пробел в пароле, он будет интерпретирован как имя базы данных, с которой нужно действовать.

mysqldump -uroot -pPassword dbase

сбросил бы базу данных dbase

mysqldump -uroot -p Password dbase

запросит пароль и попытается сбросить пароль базы данных.

Однако, как говорит mailq, вам, вероятно, следует избегать использования пароля в командной строке.

Если ваш пароль содержит специальные символы, вы должны использовать обратную косую черту.

Какая у вас версия mysql? Обычно следующий синтаксис должен работать нормально:

mysqldump -uroot -p'ThisIsThePassword' mysql

Включите пароль между '', чтобы избежать синтаксического анализа специальных символов оболочкой или иным образом избежать их.

В дополнении к mailqs ответ: --defaults-extra-file = / etc / mysql / mysqlpassword.cnf должен быть первым параметром в команде. Пример:

mysqldump --defaults-extra-file=/etc/mysql/mysqlpassword.cnf -u root paydaydebt