Mysql пустой бекап

admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

Re: Mysql пустой бекап

Post by admin »

Залил фикс под описание вашей проблемы. но было бы конечно хорошо протестировать его конкретно в вашей ситуации.
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

Re: Mysql пустой бекап

Post by magicum »

Спустя 7 лет проблема, как оказалось, такая же.

Потестить легко, повесьте коннект к mysql на локалхост в config.php
Попробуйте сделать бекап базы из админки смарта.
Бекап будет пустой. В мессаджах будет ошибка.
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

Re: Mysql пустой бекап

Post by admin »

бекап делается как
exec(mysql -u ...) и тп

если бы проблема была глобальная - за 7 лет у кого-то еще она была бы, но судя по отсуствию сообщений какая-то проблема конкретно у вас

поэтому предлагаю начать не с меседжа "какой кривой скрипт за 7 лет не решили проблему", а с "как понять почему у меня бекап пустой"
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

Re: Mysql пустой бекап

Post by magicum »

admin wrote: Tue Aug 31, 2021 1:26 pm бекап делается как
exec(mysql -u ...) и тп
Нет, он у вас делается совсем не так.

Если прописать коннект к базе через сокет в config.php, то сам смарт работает, но бекап не работает.
Если вернуть коннект к базе через localhost или 127.0.0.1, то бекап работает.

В обычных операциях смарт использует mysqli с разным набором параметров, в зависимости от того используется ли для подключения хост или сокет.

А бекап выполняется вызовом команды mysqldump, у которой параметры host и socket, это тоже два разных параметра, и тут я могу только догадываться, видимо в смарте не прописано отличие параметров mysqldump, в зависимости от того используется ли для подключения хост или сокет.

Раз за 7 лет больше никто про эту проблему не написал, то значит никто не коннектится к базе через сокет, а те кто коннектятся - забили на отсутствие бекапов в смарте и например делают эти бекапы сами.

Проверить ситуацию можно очень быстро - прописать сокет в config.php и запустить бекап базы вручную из админки.
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

Re: Mysql пустой бекап

Post by admin »

ну вот и нашлось ))
оказалось что у вас сокет, а в команде дампа прописывается хост - поэтому дамп не делался
добавил в ап что б прописывало сокет для дампа
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

Re: Mysql пустой бекап

Post by magicum »

Это всё замечательно, но вы 7 лет сказали то же самое )))

Спасибо
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

Re: Mysql пустой бекап

Post by admin »

magicum wrote: Fri Oct 03, 2014 1:37 pm Полез экспериментировать. Нашел.

Надо просто сделать так:

$config["db_server"] = "localhost";

и прописать путь до сокета в my.cnf для всех мускульных товарищей: mysql, client, mysqld, mysqldump

и тогда вроде работает.

те такое работало раньше а сейчас перестало? или почему мы тогда решили оставить эту проблему?
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

Re: Mysql пустой бекап

Post by magicum »

admin wrote: Tue Aug 31, 2021 3:21 pm те такое работало раньше а сейчас перестало? или почему мы тогда решили оставить эту проблему?
1. Я подумал что попустило, неверно истолковав мой прежний тест.
Я тогда поставил "localhost" вместо сокета и всё заработало, и я подумал, что смарт стал следовать секции [client] в my.cnf
Но я оказался неправ, как выяснилось недавно при фиксе mysql.php из db-modules

2. А потом у меня не стало ресурсов со смартами и вопрос отпал.
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

Re: Mysql пустой бекап

Post by admin »

ясно
получилось что никто сокет не юзал - вопросов не возникало
возник вопрос - пофиксили)
Don't forget to run script update
Post Reply