
약 100개의 서로 다른 데이터베이스가 포함된 MySql 서버에서 약 20개의 데이터베이스를 내보내야 합니다. 콘솔 명령을 사용하여 데이터베이스 이름 목록을 별도의 파일로 내보낼 수 있습니까? (물론 Linux에서).
답변1
echo "show databases" | mysql -N | while read db
do
mysqldump ${db} > ${db}.sql
done
grep
다음과 같은 원치 않는 데이터베이스를 제거하는 데 사용할 수 있습니다 mysql
.information_schema
답변2
백업하려는 각 데이터베이스의 이름을 해당 줄에 포함하는 텍스트 파일을 만듭니다.
예를 들어
db1
reports
그런 다음 이와 같은 스크립트를 사용하십시오.
#!/bin/bash
ERRORS=0
while read db
do
echo "Processing $db"
mysqldump -u root -p365576dx "$db" >"$db".sql
EXITSTATUS=$?
if [ "$ERRORS" -eq "0" -a "$EXITSTATUS" -ne "0" ]
then
ERRORS="$EXITSTATUS"
fi
done<dbstodump
if [ "$ERRORS" -ne "0" ]
then
echo "Errors occurred see above for details"
exit 1
fi
답변3
가장 쉬운 해결책은 명령줄에서 바로 간단한 for 루프를 사용하는 것입니다. 내 예에서는 데이터베이스 를 내보내고 싶습니다 cars
.animals
computers
for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done