Thoát mật khẩu bằng bảng điều khiển mysqldump


55

Tôi đang chạy mysqldump thông qua tập lệnh bash và đã gặp sự cố với mật khẩu có chứa các ký tự đặc biệt.

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

Làm thế nào để tôi thoát mật khẩu?

Câu trả lời:


84

Tôi tìm thấy câu trả lời. Bạn phải trích dẫn mật khẩu, như thế này:

mysql -u root -p'PASSWORD'

Bạn phải làm điều này nếu mật khẩu có bất kỳ ký tự nào sau đây: * ? [ < > & ; ! | $ ( )


Bạn có biết làm thế nào để thoát dấu nháy đơn trong mật khẩu không?
Steve Mayne

3
@SteveMayne tôi nghĩ rằng nó chỉ là một dấu gạch chéo ngược trước nó
psynnott

3
dấu ngoặc đơn cũng cần được trích dẫn.
Félix Gagnon-Grenier

1
Trên Windows tôi thấy tôi phải sử dụng dấu ngoặc kép. Dấu ngoặc đơn không hoạt động. (MySQL 5.6)
TheStoryCoder

1
khoảng trống trong mật khẩu cũng yêu cầu ''
Hafenkranich

12

Khi bạn sử dụng dấu ngoặc kép, hãy đảm bảo không có khoảng trắng:
giữa -p'PASSWORD' hoặc
giữa --password='PASSWORD'

chính xác:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'

không hoạt động:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'

bạn cũng có thể định nghĩa một biến và sau đó sử dụng nó cho lệnh (vẫn không có khoảng trắng ở giữa) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD


2

Phụ thuộc vào vỏ của bạn. Bạn đang sử dụng Microsoft Windows hay Linux? Nếu bạn đang sử dụng Linux / BASH thì có khả năng $$ đang được hiểu là ID tiến trình hiện tại của bạn. Bạn đã thử đặt dấu gạch chéo ngược trước mỗi ký hiệu đô la chưa? ví dụ

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

Lưu ý rằng gzip có thể yêu cầu tùy chọn "-c" nếu bạn muốn nén thành STDOUT.


Mật khẩu tôi đang sử dụng không phải là PA $$ W0RD nhưng tôi đã sử dụng nó làm ví dụ. Mật khẩu thực tế tôi đang sử dụng có ký hiệu và đây là nguyên nhân gây ra sự cố. Tôi đã sử dụng dấu gạch chéo ngược như bạn đề xuất nhưng nó không hoạt động.
psynnott

2

Hãy thử gạch chéo ngược ( \) những ký tự đặc biệt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.