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