RXL
|
|
« Ответ #60 : 12-10-2009 11:27 » |
|
Леш, я тебе аффторитетно говорю: разбрасываешься. Задача административная - никакого программирования даже рядом быть не может. И ошибка 136 - это не "запускается" - это сбоит. Команды консольные - в консоли их запускать надо. Там же надо решать вопросы. Одна ошибка в сравнении со сотней строк вывода - что информативнее?
Я тебе могу помочь только если ты будешь делать по моим инструкциям по шагам - иначе я не пойму, что ты делаешь и какой результат.
1. Открывай консоль. echo %PATH% Там есть путь к утилитам MySQL? (C:\Program Files\MySQL\MySQL Server 5.0\bin\)
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #61 : 12-10-2009 11:55 » |
|
дык я ж не против помощи. Это я так временно решил проблему - не зацикливаться же . А так, вот результат , строчка есть C:\Documents and Settings\11111>echo %path% C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\Microsoft SQLServer\90\Tools\binn\;C:\Program Files\MySQL\MySQL Server 5.0\bin;C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin
(щас домой надо уже уходить, завтра продолжим...)
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #62 : 12-10-2009 12:28 » |
|
в аскесе, помнится, можно было вытащить значение счётчика , которое только что получилось при записи в базу (в текущей транзакции) как в MySQL с тем же самым поступить ?
На завтра тогда 2. Посмотри файлы, существуют ли такие: %SystemRoot%\my.ini %SystemRoot%\my.cnf %SystemDrive%\my.ini %SystemDrive%\my.cnf Если есть, то вероятно они и гадят. Перемести их в безопасное место. Проверь коннект к базе посредством утилиты mysql. C:\Documents and Settings\11111>mysqldump -r "C:\1" mybase mysqldump: Character set 'cp1251' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file
Согласись, что "C:\mysql\\share\charsets\" не вяжется с ""C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\".
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #63 : 13-10-2009 07:17 » |
|
%SystemRoot%\my.ini %SystemRoot%\my.cnf %SystemDrive%\my.ini %SystemDrive%\my.cnf
- нет таких файлов
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #64 : 13-10-2009 08:29 » |
|
Хорошо. Такой тест:
> mysql --no-defaults -u login -p mybase
и
> mysql --no-defaults --help
Результат первой команды и вывод второй, начиная со строки "Default options are read from the following files in the given order:" (т.е. после вывода хелпа), в студию!
И еще вопрос: MySQL устанавливалось из готовой сборки с инсталятором, взятой с офф.сайта, или это продукт самосборки или какой еще эксперимент?
|
|
« Последнее редактирование: 13-10-2009 08:30 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #65 : 13-10-2009 09:13 » |
|
C:\Documents and Settings\11111>mysql --no-defaults -u login -p mybase Enter password: ******** ERROR 1045 (28000): Access denied for user 'login'@'localhost' (using password:YES)
Default options are read from the following files in the given order: C:\my.ini C:\my.cnf C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\Program Files\MySQL\M ySQL Server 5.0\my.ini C:\Program Files\MySQL\MySQL Server 5.0\my.cnf The following groups are read: mysql client The following options may be given as the first argument: --print-defaults Print the program argument list and exit --no-defaults Don't read default options from any options file --defaults-file=# Only read default options from the given file # --defaults-extra-file=# Read this file after the global files are read
Variables (--variable-name=value) and boolean options {FALSE|TRUE} Value (after reading options) --------------------------------- ----------------------------- auto-rehash TRUE character-sets-dir (No default value) default-character-set latin1 compress FALSE database (No default value) delimiter ; vertical FALSE force FALSE named-commands FALSE local-infile FALSE no-beep FALSE host (No default value) html FALSE xml FALSE line-numbers TRUE unbuffered FALSE column-names TRUE sigint-ignore FALSE port 3306 prompt mysql> quick FALSE raw FALSE reconnect TRUE shared-memory-base-name (No default value) socket (No default value) ssl FALSE ssl-key (No default value) ssl-cert (No default value) ssl-ca (No default value) ssl-capath (No default value) ssl-cipher (No default value) table FALSE debug-info FALSE user (No default value) safe-updates FALSE i-am-a-dummy FALSE connect_timeout 0 max_allowed_packet 16777216 net_buffer_length 16384 select_limit 1000 max_join_size 1000000 secure-auth FALSE show-warnings FALSE
опачки, вижу что то - default-character-set latin1 , хотя я указывал в визарде cp1251 !!! Кстати, там , в визарде, в списке кодировок рядом два 1251 стоят, щас второй попробую. Инсталяха - качал с сайта, полностью сама всё ставит, ничего сам не делал
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #66 : 13-10-2009 09:15 » |
|
хех, всё равно упрямо остаётся latin1
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #67 : 13-10-2009 11:29 » |
|
попутно вопрос по SELECT LAST_INSERT_ID(); например, во встроенной процедуре имеются строки ... begin insert ...; insert ...; SELECT LAST_INSERT_ID(); end
транзакция явно не задана, считается ли всё тело функции одним "оператором" , или надо обязательно ... begin start transaction;
insert ...; insert ...; SELECT LAST_INSERT_ID();
commit; end
?
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #68 : 13-10-2009 12:10 » |
|
Если ты явно не открываеш транзакцию, то база данных открывает транзакцию по умолчанию. На каждую операцию с базой данных. Т.е. каждый твой insert будет равносилен start transaction; insert .... ; commit; На всю хранимую процедуру транзакция по умолчанию не открывается.
|
|
« Последнее редактирование: 13-10-2009 12:12 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
RXL
|
|
« Ответ #69 : 13-10-2009 13:13 » |
|
Леш, спокойно. "no-defaults" означает "не читать конфиг". Т.е. хардкодед параметры. Если этот параметр убрать, то покажет то, что прочитано в конфиге.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #70 : 14-10-2009 04:09 » |
|
Ром, ну так что дальше делать ? Финч, спасибо, теперь понял. Только тут же меня компилятор MySQL мордой в салат: create function f_savetomainlog() returns bigint begin declare retval bigint default NULL; start transaction;
insert into ...(...)values(...);
set retval=last_insert_id();
commit;
return retval; end
>>Explicit or implicit commit is not allowed in stored function or trigger. - то есть в моём случае только процедура подойдёт ? (там так получается сделать) create procedure p_savetomainlog() begin start transaction; insert into ...(...)values(...); select last_insert_id(); commit; end
?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #71 : 14-10-2009 06:02 » |
|
Леш, не припомню нормально СУБД, в которой разрешалось бы в функции или триггере управлять транзакциями. И то и другое вызывается в рамках одной транзакции и управлять ей должен инициирующий процесс, а не триггер или, упаси бог, функция, которая может быть вызвана неоднократно на каждую обрабатываемую строку запроса. Для функции рекомендую указывать [NOT] DETERMINISTIC. Что дальше? Надо придти в себя после вчерашнего и вспомнить
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #72 : 14-10-2009 06:04 » |
|
Если ты явно не открываеш транзакцию, то база данных открывает транзакцию по умолчанию. На каждую операцию с базой данных. Т.е. каждый твой insert будет равносилен start transaction; insert .... ; commit; На всю хранимую процедуру транзакция по умолчанию не открывается.
Только для транзакционных движков. Для MyISAM разницы нет, как нет и транзакций.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #73 : 14-10-2009 06:14 » |
|
C:\Documents and Settings\11111>mysql --no-defaults -u login -p mybase Enter password: ******** ERROR 1045 (28000): Access denied for user 'login'@'localhost' (using password:YES)
Надеюсь, "login" в базе есть... Попробуй добавить -h localhost. Попробуй подправить конфиг: [client] port=3306 default-character-set=cp1251 character-sets-dir="c:/programm files/mysql server 5.0/share/charsets/"
У меня стойкое ощущение, что что-то ты там накрутил этакого...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #74 : 14-10-2009 06:50 » |
|
хм, эт я невнимательно, получается: C:\Documents and Settings\11111>mysql --no-defaults -u ЛОГИН -p БАЗА Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 29 to server version: 5.0.11-beta-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #75 : 14-10-2009 06:58 » |
|
А теперь проделай тоже самое, но без --no-default
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #76 : 14-10-2009 06:59 » |
|
да, прописал путь - проканало. до: C:\Documents and Settings\11111>mysqldump mysqldump: Character set 'cp1251' is not a compiled ............
добавил: character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets" стало: C:\Documents and Settings\11111>mysqldump Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #77 : 14-10-2009 07:01 » |
|
А теперь проделай тоже самое, но без --no-default
Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.0.11-beta-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #78 : 14-10-2009 07:02 » |
|
Значит все путем? Изучай: > mysqldump --helpИз полезных опций - --all Также обрати внимание, что триггеры и процедуры не сбрасываются по умолчанию - для этого надо соотв. ключик указать.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #79 : 14-10-2009 07:07 » |
|
ну, на этом этапе ок ) Непонятно осталось:
1) я ini не правил до этого - почему не прописалось, не знаю
2) файл бекапа же пустой создаётся ))
ну а триггеры и процедуры мне не надо сбрасывать - я их при старте программы проверяю и добавляю, если надо
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #80 : 14-10-2009 07:11 » |
|
ага, из консоли файл сделался нормально. Щас из программы попытаем )
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #81 : 14-10-2009 07:12 » |
|
mysqldump -u ЛОГИН -p --all mybase >dump.sql
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #82 : 14-10-2009 07:49 » |
|
да, теперь всё пучком, спасибо но, однако, GetLastError()==126 всё равно остаётся, при чём хоть что запускаю - при этом запускается нормально. Это уже, видать, глюк винды у меня какой то
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #83 : 14-10-2009 09:37 » |
|
теперь, как делать восстановление - у mysqldump не могу найти нужного ключа нашёл только RESTORE TABLE , где нужно через запятую перечислить таблицы для восстановления. Перечислить не проблема, но ведь, если базы нет вообще, а восстановить надо - откуда я их перечислю то ? -------- нашёл только, как из самой оболочки mysql сделать - mysql> \. файл а как программно -
|
|
« Последнее редактирование: 14-10-2009 10:15 от Алексей1153++ »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #84 : 14-10-2009 11:33 » |
|
фух, нашёл mysql < ПОЛНЫЙ\ПУТЬ\backup.sql -u ЮЗЕР --password= ПАРОЛЬ БАЗА
оказывается, просто "-p" не прокатывает, надо именно "--password"
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #85 : 14-10-2009 11:35 » |
|
Ошибка 126 (ENOKEY): Required key not available.
-p вызывает ввод пароли с терминала, а --password=... - сразу из параметров берет.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #86 : 14-10-2009 11:37 » |
|
а у меня errlook.exe пишет: Не найден указанный модуль.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #87 : 14-10-2009 13:57 » |
|
Наверно так - ты ж в винде ее запускаешь.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #88 : 15-10-2009 04:10 » |
|
вопрос: во время восстановления, нужно ли отключаться от базы, если в программе есть в данный момент подключение ?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #89 : 15-10-2009 04:31 » |
|
блин, опять галиматья
mysql < ПОЛНЫЙ\ПУТЬ\backup.sql -u ЮЗЕР --password= ПАРОЛЬ БАЗА
как это запустить программно то, я так понимяу, что "<" не есть параметр, а оператор. Как этот оператор через параметры ShellExecute задать ?
|
|
|
Записан
|
|
|
|
|