У меня есть сервер mysql в centos, который работает нормально, недавно я получил скрипт для сброса всех отдельных баз данных в одну папку, когда я запускаю этот скрипт для дампа, я получаю эту ошибку, когда я запускаю скрипт
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
пожалуйста, предложите решения.
Увидев вашу ошибку, по какой-то причине он пытается использовать неправильный сокет unix.
Попробуйте добавить в команду mysql параметр -S /var/lib/mysql/mysql.sock
.