Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mysqldump не работает, если в имени файла есть пробел 
V
    Опции темы
zav74
Дата 27.4.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Спасибо - попробую эту функцию, у меня естественно было написано, не так-эту я строку из дэбагэра скопировал. А в коде она собирается из многих частей и выглядит-
Код

system("\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump\" -R -h localhost -P 3306 -u root -p111 --databases my_db > D:\\notspacedir\\my_db.sql");

иначе конечно не скомпилится
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата

Спасибо - попробую эту функцию, у меня естественно было написано, не так-эту я строку из дэбагэра скопировал. А в коде она собирается из многих частей и выглядит-


Ну а мне откуда знать откуда она скопирована..я вижу код, предполагаю что это скопировано из сорсов smile

PM   Вверх
zav74
Дата 27.4.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Спасибо. Вроде что-то работает. Только выполняется в фоновом режиме, а хотелось бы модально. Но это уже частности. Наверно, завтра добью эту проблему.

Добавлено через 3 минуты и 55 секунд
Спасибо. Вроде что-то работает. Только выполняется в фоновом режиме, а хотелось бы модально. Но это уже частности. Наверно, завтра добью эту проблему.
PM MAIL   Вверх
zav74
Дата 28.4.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



ShellExecuteA - все таки не подходит. Не отследить окончание процесса, а это важно. А также не запускается mysql.exe с пробелами(а как же без разархивации) - так что надо что-то сложное городить. 
PM MAIL   Вверх
azesmcar
Дата 28.4.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

Цитата

ShellExecuteA - все таки не подходит. Не отследить окончание процесса, а это важно. А также не запускается mysql.exe с пробелами(а как же без разархивации) - так что надо что-то сложное городить. 


CreateProcess, WaitForSingleObject

PM   Вверх
zav74
Дата 29.4.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



CreateProcess, WaitForSingleObject - вроде работает с mysqldump, но не получается разархивировать  с mysql.exe
PM MAIL   Вверх
azesmcar
Дата 29.4.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата

но не получается разархивировать  с mysql.exe 

Не понял что это значит.
PM   Вверх
zav74
Дата 29.4.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



С помощью mysqldump я получил архив базы данных. Теперь надо иметь возможность этот архив назад залить на сервер. Для этого использую mysql.exe. Так вот не получается с пробелами это сделать, точнее с помощью CreateProcess вообще не выполняется, а с функцией system получается, но только без пробелов.
PM MAIL   Вверх
azesmcar
Дата 29.4.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

Код в студию
PM   Вверх
zav74
Дата 29.4.2009, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Код

STARTUPINFO pSTR;
ZeroMemory(&pSTR,sizeof(STARTUPINFO));
PROCESS_INFORMATION pProc;

CreateProcess(    "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe",
            "-h localhost -P 3306 -u root -p111 < D:\\space dir\\db.sql", 
            NULL, 
            NULL, 
            FALSE, 
            NULL,
            NULL, 
            NULL, 
            &pSTR, 
            &pProc);

так не работает, причем первые две строчки пробовал по-разному и кавычки тоже


Код

system("\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe\" -h localhost -P 3306 -u root -p111 < D:\\notspacedir\\db.sql")

так работает

Код

system("\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe\" -h localhost -P 3306 -u root -p111 < D:\\space dir\\db.sql")

так не работает, и кавычки не помогают

PM MAIL   Вверх
Gwire
Дата 1.5.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4




Я не спец в познаниях о функции system. Но
Цитата(zav74 @  23.4.2009,  11:47 Найти цитируемый пост)
Кавычки не помогают

Но вот это работает из cmd нормально rar > "C:\temp\12 34 56.txt" Как говорится кавычки "хаваются". 

Попробуй продублировать кавычки. И кстати не видел не одного примера, где с кавычками не работает.
Код

system("mysqldump -R -h localhost -P 3306 -u root -p111 --databases my_db > \"D:\\notspacedir\\my_db.sql\"");


PM MAIL   Вверх
zav74
Дата 4.5.2009, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Код

system("mysqldump -R -h localhost -P 3306 -u root -p111 --databases my_db > \"D:\\notspacedir\\my_db.sql\"");


Нет, так не работает. Думаю, здесь проблема не system, а mysqldump. Если убрать кавычки, то работает.
PM MAIL   Вверх
zav74
Дата 4.5.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Код

system("mysqldump -R -h localhost -P 3306 -u root -p111 --databases my_db > \"D:\\notspacedir\\my_db.sql\"");


Ошибся, так работает. В данной конструкции надо использовать кавычки один раз. Я раньше пробовал - \"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe\", в этом случае \"D:\\notspacedir\\my_db.sql\" не прокатывало, а если в первой части кострукции кавычки убрать, то вроде работает.

Добавлено через 38 секунд
конструкции кавычки убрать
PM MAIL   Вверх
azesmcar
Дата 4.5.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Код

CreateProcess(    "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe",
            "-h localhost -P 3306 -u root -p111 < D:\\space dir\\db.sql", 
            NULL, 
            NULL, 
            FALSE, 
            NULL,
            NULL, 
            NULL, 
            &pSTR, 
            &pProc);

Разумеется
Цитата

< D:\\space dir\\db.sql

как это будет работать? это не консоль в конце концов. Теги перенаправления тут не могут работать. Передавайте имя файла по параметру. Если в mysql.exe такого нет, используйте mysqlimport
PM   Вверх
zav74
Дата 6.5.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Сейчас возникла еще одна проблема, ведь если на клиенте не стоит MySQL, то и программ mysqldump.exe и mysql.exe у него нет. Выходит, что он не сможет архивировать БД. Идеально было бы архивировать через встроенные функции, но я что-то таких не нашел.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.