mysql 서버에 액세스하고 bash 스크립트를 사용하여 localhost의 모든 테이블과 데이터베이스 및 해당 데이터를 인쇄한다고 가정합니다.
내가 가지고 있는 스크립트는 다음과 같습니다.
mysql -u 루트 -p 비밀번호
스크립트가 실행되면 bash 대신 mysql 쉘이 열립니다. 그렇다면 mysql로 어떻게 명령을 실행할 수 있습니까?
또한 모든 데이터베이스, 테이블 및 해당 데이터를 인쇄하려면 어떤 명령을 실행해야 합니까?
편집: 이제 어떤 명령을 사용해야 하는지 알 수 있지만 여전히 질문은 남아 있습니다.
스크립트로 만들어야 하는데 mysqldump 명령을 입력하면 대화식으로 비밀번호를 묻는 메시지가 나타납니다.
그렇다면 bash 스크립트에서 비밀번호를 어떻게 처리할 수 있나요?
답변1
보다mysqldump당신이 원하는 것을 수행합니다.
사용 예:
mysqldump -u root -p --all-databases
특정 상황에 맞는 더 많은 스위치를 보려면 설명서를 참조하세요.
답변2
이 시도..
mysqldump -u root -p databasename > filename.sql
모든 테이블은 filename.sql에 저장됩니다. 백업과 같습니다.
테이블을 다시 데이터베이스에 저장하려면 이 명령을 사용하세요.
mysqldump -u root -p databasename < filename.sql
답변3
을 실행하면 man mysqldump
다음과 같은 결과가 출력됩니다.
--password[=비밀번호], -p[비밀번호]
서버에 연결할 때 사용할 비밀번호입니다. 짧은 옵션 형식(-p)을 사용하는 경우 옵션과 비밀번호 사이에 공백을 사용할 수 없습니다. 명령줄에서 --password 또는 -p 옵션 뒤에 비밀번호 값을 생략하면 mysqldump가 비밀번호 값을 묻는 메시지를 표시합니다.
명령줄에서 비밀번호를 지정하는 것은 안전하지 않은 것으로 간주됩니다. 섹션 6.1.2.1, "비밀번호 보안에 대한 최종 사용자 지침"을 참조하십시오. 옵션 파일을 사용하면 명령줄에 비밀번호를 입력하지 않아도 됩니다.
루트 비밀번호가 PASSWORD라고 가정하고 다음 명령을 시도해 보세요.
mysqldump -u root -pPASSWORD --all-databases > database.sql