Уникнення пароля за допомогою консолі mysqldump


54

Я запускаю mysqldump через bash-скрипт і зіткнулася з проблемою пароля, який містить спеціальні символи.

mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | 
                                gzip > /home/USERNAME/backups-mysql/BACKUP.gz

Як мені уникнути пароля?

Відповіді:


83

Я знайшов відповідь. Ви повинні цитувати пароль, наприклад:

mysql -u root -p'PASSWORD'

Ви повинні зробити це, якщо пароль містить будь-який з наступних символів: * ? [ < > & ; ! | $ ( )


Чи знаєте ви, як уникнути апострофа в межах пароля?
Стів Мейне

3
@SteveMayne Я думаю, що це просто зворотний
нахил

3
круглі дужки також повинні бути в лапках.
Фелікс Ганьон-Греньє

1
У Windows я виявив, що мені потрібно було використовувати подвійні лапки. Одиночні цитати не спрацювали. (MySQL 5.6)
TheStoryCoder


12

коли ви використовуєте лапки, переконайтеся , що немає простору:
між -pі 'PASSWORD' чи
між --password=і'PASSWORD'

правильно:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'

не працює:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'

Ви також можете визначити змінну, а потім використати її для команди (все ще пропусків між ними) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD


2

Залежить від вашої оболонки. Використовуєте Microsoft Windows або Linux? Якщо ви використовуєте Linux / BASH, ймовірно, що $$ інтерпретується як ваш поточний ідентифікатор процесу. Чи спробували ви поставити зворотній косою рису перед знаком кожного долара? напр

mysqldump \
  -hlocalhost \
  -uUSERNAME \
  -pPA\$\$W0RD \
  DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz

Зауважте, що gzip, ймовірно, вимагає опції "-c", якщо ви хочете стиснути до STDOUT.


Я використовую цей пароль не PA $$ W0RD, але я використовував це як приклад. Фактичний пароль, який я використовую, має амперсанд, і саме це викликає проблему. Я використовував зворотний нахил, як ви запропонували, але це не спрацювало.
psynnott

2

Спробуйте виконати нахил ( \) цих спеціальних знаків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.