모든 데이터베이스를 덤프하는 스크립트를 실행할 때 mysql 오류가 발생함

모든 데이터베이스를 덤프하는 스크립트를 실행할 때 mysql 오류가 발생함

잘 실행되는 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.

관련 정보