Конечно
$mysqldump_str = $settings['mysqldump_path'] . " параметры как обычно в строке > $file ";
exec($mysqldump_str, $output, $error);
Mysql пустой бекап
Re: Mysql пустой бекап
Don't forget to run script update
Re: Mysql пустой бекап
эмм, я коряво выразился
я имел в виду, что-нибудь этакое:
php /path-to-smartcj/scj/admin/blabla-backup.php
я имел в виду, что-нибудь этакое:
php /path-to-smartcj/scj/admin/blabla-backup.php
Re: Mysql пустой бекап
mysqldump: Got error: 2005: Unknown MySQL server host 'localhost:/path-to-socket/mysqld.sock' (0) when trying to connect
path-to-socket верный, естессно
path-to-socket верный, естессно
Re: Mysql пустой бекап
Я выше показал код как оно вызывает mysqldump
сокет нигда там не прописывается, вызывается бинарник просто с парметрыми базы
Думаю вам стоит спросить админа какой на самом деле верный.
сокет нигда там не прописывается, вызывается бинарник просто с парметрыми базы
Думаю вам стоит спросить админа какой на самом деле верный.
Don't forget to run script update
Re: Mysql пустой бекап
нету у меня админа.
в общем, такая петрушка:
у вас смарт сует строку вида "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
вполне осиливает
но, разумеется, поменять в смарте эти вещи я не могу
в общем, такая петрушка:
у вас смарт сует строку вида "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
вполне осиливает
но, разумеется, поменять в смарте эти вещи я не могу
Re: Mysql пустой бекап
Даю 100% гарантию что что --socket он в строку не добавляет
у него просто этих данных нет
он добавляет толкьо те данные которые есть в config.php
у него просто этих данных нет
он добавляет толкьо те данные которые есть в config.php
Don't forget to run script update
Re: Mysql пустой бекап
эх, опять вы не читаете 
я и не говорю, что он --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
вот я к чему веду
я и не говорю, что он --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
вот я к чему веду
Re: Mysql пустой бекап
Полез экспериментировать. Нашел.
Надо просто сделать так:
$config["db_server"] = "localhost";
и прописать путь до сокета в my.cnf для всех мускульных товарищей: mysql, client, mysqld, mysqldump
и тогда вроде работает.
Надо просто сделать так:
$config["db_server"] = "localhost";
и прописать путь до сокета в my.cnf для всех мускульных товарищей: mysql, client, mysqld, mysqldump
и тогда вроде работает.







