나는 파이프 연산자를 사용하여 7z를 통해 mysqldump 출력을 압축하려고 했습니다.이것질문이지만 그 대답은 7z 대신 xz를 사용합니다). 지금까지 시도한 내용은 다음과 같습니다.
mysqldump -u root -p Linux_Wiki | 7z > backup.sql.7z
그리고:
mysqldump -u root -p Linux_Wiki | 7za > backup.sql.7z
그리고:
mysqldump -u root -p Linux_Wiki | '7za a' > backup.sql.7z
그리고:
mysqldump -u root -p Linux_Wiki | `7za a` > backup.sql.7z
p7zip
네 가지 모두 실패했지만 마지막 시도에서 다음과 같은 결과가 나왔기 때문에 설치 했다고 확신합니다 .
Enter password: bash: 7-Zip: command not found
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
답변1
비밀번호는 먼저 .my.cnf
사용자의 홈 디렉토리에 있는 파일에 다음 형식으로 저장됩니다.
[mysqldump]
password=secret
mysqldump
그런 다음 플래그 없이 방법을 사용하여 mysql 데이터베이스를 덤프해야 합니다 -p
(이제 파일의 비밀번호를 사용합니다).
mysqldump -u root database | 7z a -si backup.sql.7z
- 아카이브에
a
플래그가 추가되었습니다.7z
-si
표준 입력(익명 파이프)에서 읽는 것을 나타냅니다.
답변2
일부 사람들은 이러한 관행에 눈살을 찌푸릴 수도 있지만 다음과 같이 명령줄에 비밀번호를 입력할 수 있습니다.
mysqldump -u root -pmyrootpassword database | 7z a -si backup.sql.7z
이는 -p
인수 바로 뒤에 와야 합니다.
답변3
7zip 알고리즘이 포함된 파이프라인을 사용하려면 7z 대신 xz 사용을 고려해야 합니다.
xz는 7z와 정확히 동일한 알고리즘을 사용하지만 gzip(또는 bzip2)처럼 사용할 수 있습니다. xz와 7zip은 동일한 작성자가 디자인했습니다.
mysqldump -u root -p Linux_Wiki | xz -9 > backup.sql.xz
7zip의 GUI는 xz를 인식합니다.