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

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

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

Post by admin »

Конечно

$mysqldump_str = $settings['mysqldump_path'] . " параметры как обычно в строке > $file ";
exec($mysqldump_str, $output, $error);
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

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

Post by magicum »

эмм, я коряво выразился

я имел в виду, что-нибудь этакое:

php /path-to-smartcj/scj/admin/blabla-backup.php
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

cd scj/bin
php cron.php create_backup=true
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

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

Post by magicum »

mysqldump: Got error: 2005: Unknown MySQL server host 'localhost:/path-to-socket/mysqld.sock' (0) when trying to connect

path-to-socket верный, естессно
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

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

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

Post by magicum »

нету у меня админа.

в общем, такая петрушка:

у вас смарт сует строку вида "localhost:/tmp/mysqld.sock" в параметр --host="", который работает для mysql, но не работает для mysqldump

то есть, насколько я могу судить, смарт пытается выполнить команду:

mysqldump --host="localhost:/tmp/mysqld.sock" -u <user> -p<password> <database> > file.sql
и она не осиливает параметр host

а вот так:

mysqldump --host="localhost" --socket="/tmp/mysqld.sock" -u <user> -p<password> <database> > file.sql
вполне осиливает

но, разумеется, поменять в смарте эти вещи я не могу
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

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

Post by admin »

Даю 100% гарантию что что --socket он в строку не добавляет
у него просто этих данных нет
он добавляет толкьо те данные которые есть в config.php
Don't forget to run script update
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

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

Post by magicum »

эх, опять вы не читаете :(

я и не говорю, что он --socket добавляет в строку

Вы, ребята, сэкономили на лишних строчках кода, и поставили "универсальную" штучку для всех, и кто по порту подключается, и кто по сокету.

ваш скрипт подставляет в параметр --host или -h значение из конфига, вот это значение:

$config["db_server"] = "host:port";

Лимон говорил, что если используем сокет, то пишем там:

$config["db_server"] = "localhost:/path-to-socket";

мол и так сойдет, mysql понимает, что если там путь к сокету, то будет коннектиться к нему.
mysqldump так тоже раньше умел, а теперь, видимо, не умеет

хотя даже для такой лохматой версии как 5.1, официальный мануал четко говорит, как надо коннектиться к сокету - http://dev.mysql.com/doc/refman/5.1/en/ ... ldump_host


вот я к чему веду
magicum
Posts: 351
Joined: Mon Nov 18, 2013 11:27 am

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

Post by magicum »

Полез экспериментировать. Нашел.

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

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

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

и тогда вроде работает.
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