Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 [4] 5 6 7   Вниз
  Печать  
Автор Тема: Всякие вопросы по MySQL 5.0+  (Прочитано 132645 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #90 : 15-10-2009 06:33 » 

1) создать временный bat - облом, опять "<" себя неадекватно ведёт, переставляет местами путь и параметры
2)msql_real_query() , куда скормил загруженный из *.sql файла скрипт, тоже ругается на синтаксис .

Мну в шоке, спасите мой моск ))) Необходимо программно запустить восстановление, консоль пользователи откажутся понимать и вообще побьют
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #91 : 15-10-2009 06:49 » 

мой моск спас незабвенный Paul
https://forum.shelek.ru/index.php?action=profile;u=4809

Код:
mysql -u ЮЗЕР --password=ПАРОЛЬ --database=БАЗА --execute="\. ПУТЬ\file.sql"

где "\." - собственно, сама команда mysql.exe для заливки файла в базу
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #92 : 16-10-2009 09:31 » 

вопрос:
во время восстановления, нужно ли отключаться от базы, если в программе есть в данный момент подключение ?

Во время восстановление, естественно, работа клиентов противопоказана. Если ты имеешь в виду, что подключился с административными целями, то ничего страшного, если конечно не изменяешь заливаемых данных на ходу, т.ч. заливка дампа = суть выполнение SQL-операторов.


Насчет "<": Леха, учи матчасть, елы-палы!
Гуи-гуями, а элементарные вещи знать надо: операции "<" , ">", ">>" и "|" не являются параметрами команды - это конструкции оболочки (в твоем случае - cmd.exe), которые перенаправляют ввод и вывод создаваемого процесса. В командной строке их следует располагать после параметров.
Родом эти штуки из мира Unix, но в MSDOS присутствуют с незапамятных времен (как в его наследии - cmd.exe).
« Последнее редактирование: 16-10-2009 09:40 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #93 : 16-10-2009 09:53 » 

Цитата
Насчет "<": Леха, учи матчасть, елы-палы!
а если я этими символами никогда не пользовался - откуда ж мне знать Улыбаюсь
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #94 : 16-10-2009 10:00 » 

Теперь знаешь Улыбаюсь
А лучше почитай.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #95 : 16-10-2009 11:22 » 

Опять какая то проблема: в хранимой процедуре делается select , к примеру тупо:

Код:
CREATE PROCEDURE proc1()
begin
select 1;
end

вызов
Код:
call proc1;

в MySQL Query Browser  всё отлично работает, возвращается результат, показывется.

В программме:
Код:
int res=mysql_query(m_pCONN,"call proc1");

пишет ошибку:
PROCEDURE proc1 can't return a result set in the given context

Если в процедуре нет селекта, то всё нормально.

что такое и как бороться ?
« Последнее редактирование: 16-10-2009 11:29 от Алексей1153++ » Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #96 : 16-10-2009 11:39 » 

http://dev.mysql.com/doc/refman/5.1/en/c-api-multiple-queries.html

Опция CLIENT_MULTI_RESULTS при подключении к серверу. Доступно для клиентов, поддерживающих протокол версии 5.

Т.е. изначально возвращать рекордсеты из процедур нельзя, но в протоколе 5 есть расширение на этот случай. Какие фичи поддерживает клиент он должен указать при подключении.
« Последнее редактирование: 16-10-2009 11:42 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #97 : 16-10-2009 11:47 » 

спасибо, помогло )
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #98 : 23-10-2009 10:53 » 

вопрос:

к примеру, устанавливаю я свою программу на машину, где уже ктото ставил MySQL , задавай своего пользователя и пароль доступа (скажем root и 12345).
Определить то, что заново устанавливать СУБД не надо, я , скажем, могу поиском запущеного сервиса, а как добавить своего пользователя/пароль ?

Вообще, как такие стычки разруливать, чтобы и моя программа заработала и чужая не поломалась ?
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #99 : 23-10-2009 12:12 » 

Алексей1153++, Ты же используеш разные базы данных. Скажем у тебя будет Alex1153. У других другие имена. Чтоб посмотреть список баз данных, можно предварительно дать запрос SHOW DATABASES; На который выведется все имена баз, которые на данный момент присутствуют в системе, и доступны данному пользователю. Соответственно под root все базы доступны.
Чтоб добавить пользователя, почитай тут http://dev.mysql.com/doc/refman/5.1/en/adding-users.html
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #100 : 23-10-2009 14:26 » 

Finch, я немного не о том. Во первых, root может там уже не быть, либо быть с другим паролем. То есть, подключиться к СУБД я уже не могу, а значит вынужден переустановить? А та, другая программа, обламывается. Да и с ini файлом как поступить
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #101 : 23-10-2009 14:32 » 

В системе может быть установлено и независимо работать несколько копий MySQL любых версий - главное, чтобы конфиги и директории не пересекались.
Если необходимо указать параметры клиента (блок [client]) в конфиге, то придется указывать приложению, с каким конфигом работать - это надо учитывать в коде.

Если использовать одну СУБД для разных приложений, то достаточно просто создать пользователя, базу и дать пользователю права на эту базу. Кстати, работать под root настоятельно не рекомендую. Хотя бы для подобных случаев.

Код:
CREATE DATABASE db_name DEFAULT CHARACTER SET cp1251;

CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';

GRANT ALL ON dn_name.* TO 'user_name'@'host';


Существуют старые советы создавать пользователя, которыми не рекомендую пользоваться:
Код:
GRANT ALL ON db_name.* TO 'user_name'@'host' IDENTIFIED BY 'password';
« Последнее редактирование: 23-10-2009 14:39 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #102 : 23-10-2009 14:42 » 

Алексей1153++, А кто тебе даст устанавливать твою программу Улыбаюсь Ответ, Администратор даной системы. Значит он или сам, должен создать базу данных и зарегистрировать пользователя в MySQL. Или наделить данными полномочиями твой инсталиционный скрипт. Написав имя пользователя и пароль для доступа в диалоговом окне. Далее дело техники.
Можно это также проделать из командной строки
Код:
mysql -h host -u user -p < batch-file
Где batch-file и будет инсталиционный скрипт.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #103 : 23-10-2009 14:48 » 

1) если версия MySQL, уже бытующая на машине, не ниже 5 (я на ней разрабатываю), то согласен использовать уже установленную версию. Однако, как я сделаю
Код:
CREATE DATABASE db_name DEFAULT CHARACTER SET cp1251;

CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';

GRANT ALL ON dn_name.* TO 'user_name'@'host';
, если я не могу подключиться, ведь я не знаю ни один логин-пароль ?

2)
Цитата
В системе может быть установлено и независимо работать несколько копий MySQL любых версий - главное, чтобы конфиги и директории не пересекались.
то есть, я просто указываю иную папку для установки MySQL, а так же в программе везде уточняю, откуда брать ini ?
А как тот факт, что будет запущено два процесса mysqld-nt , как их отличать в случае чего ?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #104 : 23-10-2009 14:52 » 

Финч,
Цитата
А кто тебе даст устанавливать твою программу Улыбаюсь Ответ, Администратор даной системы. Значит он или сам, должен создать базу данных и зарегистрировать пользователя в MySQL
далеко не факт, что там будет сидеть кто то грамотный - ведь предыдущая программа ставилась на чистый комп и сама всё настроила, без всякого админа Улыбаюсь
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #105 : 23-10-2009 14:53 » 

А попросить установшика программы, дать тебе доступ? Собственно как и делают админские программы баз данных?

Цитата
далеко не факт, что там будет сидеть кто то грамотный - ведь предыдущая программа ставилась на чистый комп и сама всё настроила, без всякого админа
И пользователи там сидят с админскими полномочиями в системе?
« Последнее редактирование: 23-10-2009 14:55 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #106 : 23-10-2009 14:56 » 

какой доступ то, там может (и скорее всего будет) сидеть ничего не понимающий в этом мент, который установил предыдущую программу единственным тычком в Install , а как оно внутри работает - понятия не имеет Улыбаюсь
В общем, вариант получить доступ к предыдущей версии MySQL практически отпадает (
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #107 : 23-10-2009 15:13 » 

Есть способ востановления пароля, если его забыл.  Там сервер запускается с определенным параметром. Тогда все настройки игнорируются. http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html Но для этого нужны админские права в системе.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #108 : 23-10-2009 15:18 » 

Леш, смотри параметры mysqld - можешь поменять порт, имя pipe и все, что угодно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #109 : 23-10-2009 15:21 » 

понятно. Но всё же я склоняюсь к другой копии MySQL. Надо только разобраться, как это хорошо сделать )
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #110 : 23-10-2009 15:30 » 

Алексей1153++, золотые слова! Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #111 : 27-10-2009 05:41 » 

как оптимизировать такой запрос (если это возможно)
Код:
SELECT
 year(_time_),
 month(_time_),
 day(_time_),
 hour(_time_),
 minute(_time_),
 second(_time_)
  FROM log;

на вопрос "зачем": мне так некрасиво Улыбаюсь)
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #112 : 27-10-2009 06:33 » 

Алексей1153++, что ты понимаешь под оптимизацией?

Что такое - мне так некрасиво?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #113 : 27-10-2009 06:47 » 

мне не нравится, что одно и то же поле приходится много раз перечислять
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #114 : 27-10-2009 06:48 » 

Слав, я так понял - с целью повышения эстетизма Улыбаюсь

Только никакая это оптимизация, коли план выполнения запроса не меняется и время выборки не сокращается...

Леш, что за "_time_"?

Что ты подразумеваешь под "поле"? Столбец таблицы, константу, функцию? Это на всякий случай - вдруг мы по разному думаем Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #115 : 27-10-2009 07:22 » 

_time_ - это поле таблицы log с типом тип DATETIME (ну, я думал, это и так ясно)

с оптимизацией - может и не улучшить, а внешний вид хотелось бы вроде

Код:
SELECT _time_ as t, year(t),month(t),day(t),hour(t),minute(t),second(t) FROM log;

но тут есть 2 "но":
1) алиас не применяется к полю (или я синтаксис ошибнул?)
2) поле _time_ выбирается лишний раз (если бы п.1 работал)
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #116 : 27-10-2009 07:33 » 

Алексей1153++, не ищи проблем там, где их НЕТ!
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #117 : 27-10-2009 07:38 » 

Sla, самая главная у меня проблема - рассеянность Улыбаюсь Поэтому предпочитаю один раз написать имя, которое может поменяться, а не в 6 местах одно и то же
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #118 : 27-10-2009 07:51 » 

встроенный запрос

select year(t), ...
from (select time as t from log)

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #119 : 27-10-2009 08:06 » 

Код:
SELECT year(t), month(t), day(t), hour(t), minute(t), second(t)
  FROM (select _time_ as t from log);

ругается

Every derived table must have its own alias

так то же самое
Код:
SELECT year(L.t), month(L.t), day(L.t), hour(L.t), minute(L.t), second(L.t)
  FROM (select _time_ as t from log as L);
« Последнее редактирование: 27-10-2009 08:08 от Алексей1153++ » Записан

Страниц: 1 2 3 [4] 5 6 7   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines