Câu trả lời:
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: * ? [ < > & ; ! | $ ( )
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
và 'PASSWORD'
hoặc
giữa --password=
và'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
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.