Page 3 of 3
Re: Mysql пустой бекап
Posted: Fri Oct 03, 2014 2:18 pm
by admin
Залил фикс под описание вашей проблемы. но было бы конечно хорошо протестировать его конкретно в вашей ситуации.
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 10:25 am
by magicum
Спустя 7 лет проблема, как оказалось, такая же.
Потестить легко, повесьте коннект к mysql на локалхост в config.php
Попробуйте сделать бекап базы из админки смарта.
Бекап будет пустой. В мессаджах будет ошибка.
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 1:26 pm
by admin
бекап делается как
exec(mysql -u ...) и тп
если бы проблема была глобальная - за 7 лет у кого-то еще она была бы, но судя по отсуствию сообщений какая-то проблема конкретно у вас
поэтому предлагаю начать не с меседжа "какой кривой скрипт за 7 лет не решили проблему", а с "как понять почему у меня бекап пустой"
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 1:52 pm
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 и запустить бекап базы вручную из админки.
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 2:25 pm
by admin
ну вот и нашлось ))
оказалось что у вас сокет, а в команде дампа прописывается хост - поэтому дамп не делался
добавил в ап что б прописывало сокет для дампа
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 3:19 pm
by magicum
Это всё замечательно, но вы 7 лет сказали то же самое )))
Спасибо
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 3:21 pm
by admin
magicum wrote: Fri Oct 03, 2014 1:37 pm
Полез экспериментировать. Нашел.
Надо просто сделать так:
$config["db_server"] = "localhost";
и прописать путь до сокета в my.cnf для всех мускульных товарищей: mysql, client, mysqld, mysqldump
и тогда вроде работает.
те такое работало раньше а сейчас перестало? или почему мы тогда решили оставить эту проблему?
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 3:26 pm
by magicum
admin wrote: Tue Aug 31, 2021 3:21 pm
те такое работало раньше а сейчас перестало? или почему мы тогда решили оставить эту проблему?
1. Я подумал что попустило, неверно истолковав мой прежний тест.
Я тогда поставил "localhost" вместо сокета и всё заработало, и я подумал, что смарт стал следовать секции [client] в my.cnf
Но я оказался неправ, как выяснилось недавно при фиксе mysql.php из db-modules
2. А потом у меня не стало ресурсов со смартами и вопрос отпал.
Re: Mysql пустой бекап
Posted: Tue Aug 31, 2021 3:30 pm
by admin
ясно
получилось что никто сокет не юзал - вопросов не возникало
возник вопрос - пофиксили)