![모든 데이터베이스를 덤프하는 스크립트를 실행할 때 mysql 오류가 발생함](https://rvso.com/image/658370/%EB%AA%A8%EB%93%A0%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EB%A5%BC%20%EB%8D%A4%ED%94%84%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20mysql%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%A8.png)
잘 실행되는 centos에 mysql 서버가 있습니다. 최근에 모든 개별 데이터베이스를 하나의 폴더에 덤프하는 스크립트를 얻었습니다. 해당 스크립트를 실행하여 덤프할 때 스크립트를 실행할 때마다 이 오류가 발생합니다.
mysqldump: Couldn't execute 'UNLOCK TABLES': MySQL server has gone away (2006)
Db_1
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) when trying to connect
DB2
심지어 /var/lib/mysql/mysql.sock
서버에도 문제가 있습니다. 동일한 문제가 발생할 때마다 작업을 실행하기 위해 다른 스크립트를 시도하기도 했습니다.
하지만 다음을 사용하여 로그인할 수 있습니다. 아무 것도 mysql -u root -p
사용하지 않고 덤프할 수 있지만 mysqldump -u root -p db_1 > db_1.sql
스크립트를 실행할 때만 문제가 발생합니다.
스크립트 줄은 다음과 같습니다.
databases=`$MYSQL --user=$MYSQL_ROOT_USER --password=$MYSQL_ROOT_PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
echo $db
$MYSQLDUMP --force --opt --user=$MYSQL_ROOT_USER --password=$MYSQL_ROOT_PASSWORD --databases $db > "$OUTPUTDIR/$db.sql"
done
해결책을 제안해주세요.
답변1
어떤 이유로 잘못된 유닉스 소켓을 사용하려고 시도하는 오류가 표시됩니다.
mysql 명령에 매개변수를 추가해 보십시오 -S /var/lib/mysql/mysql.sock
.