Перейти к содержимому


Создание сервиса


Сообщений в теме: 33

#1 warik777

    Специалист

  • Специалисты
  • PipPipPipPip
  • 223 сообщений
  • ГородБрянск

Отправлено 03 Январь 2011 - 00:53

Предлагаю вашему вниманию, удобное создание нового сервиса.
При создании можно написать (имя/пароль/название бд) и выбрать кодировку базы данных
Прикрепленный файл  1.jpg   46,14К   417 Количество загрузок:

Класс: CreateService

Скрытый текст

Заменить стандартное создание сервисов в MainPage на вот это:
Скрытый текст

в MainProps
setStringProperty("db.pass","");

new UserPreference(UserPreference.CATEGORY_TYPE,"db_create", "Настройки авто создании базы"),
new UserPreference(UserPreference.PASS_TYPE,"db.pass","Пароль root`a",getStringProperty("db.pass"),false)

ВНИМАНИЕ!
Создать в корне бота папку с названием "templates" и файл с названием "db" и с расширением файла "sql"
И еще, один запрос в одну строку нужно чтобы было, а иначе работать не будет!


Небольшой пример:

Цитата

CREATE TABLE IF NOT EXISTS `ads` ( `id` int(11) NOT NULL AUTO_INCREMENT, `txt` text NOT NULL, `enable` int(1) NOT NULL DEFAULT '1', `note` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `ads_log` ( `ads_id` int(11) NOT NULL, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `uin` varchar(20) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Хотел сказать спасибо olegator'у и ~ёМАё~ за помощь и тыканья меня носов в мои ошибки))

Сообщение отредактировал warik777: 10 Январь 2011 - 20:54


#2 tipugan

    Новичок

  • Пользователи
  • Pip
  • 45 сообщений

Отправлено 03 Январь 2011 - 01:14

если нет исходников возможно осушествить это ?

#3 mart1wtf

    Специалист

  • Пользователи
  • PipPipPipPip
  • 376 сообщений

Отправлено 03 Январь 2011 - 02:06

Просмотр сообщенияtipugan (03 Январь 2011 - 01:14) писал:

если нет исходников возможно осушествить это ?
нет, это нужно засовывать в исходники и компилировать!

#4 dragon_94

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 1 353 сообщений

Отправлено 03 Январь 2011 - 03:52

дамп нужно перепилить под код.
один запрос на одну строку

Саш приведи парням пример как нужно дамп подстроить под код.

#5 olegteror

    QT Coder.

  • Специалисты
  • PipPipPipPipPip
  • 543 сообщений

Отправлено 03 Январь 2011 - 14:19

Цитата

private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/";

вчера до меня еще не дошло сказать что бы поле для порта и хоста сделал:)
ток ща дошло

#6 Ar2r

    Dexsor

  • Специалисты
  • PipPipPipPipPip
  • 1 137 сообщений

Отправлено 03 Январь 2011 - 14:36

Просмотр сообщенияolegteror (03 Январь 2011 - 14:19) писал:

вчера до меня еще не дошло сказать что бы поле для порта и хоста сделал:)
ток ща дошло
если ставить с учетом что база на этом же вдсе(дедике) что и бот, то вопросов нету, а вот если база в другом месте то это важно))

#7 dim@X

    Хостер ICQ чатов

  • Пользователи
  • PipPipPipPipPip
  • 1 538 сообщений
  • ГородОрел

Отправлено 03 Январь 2011 - 17:02

Тут небольшая ошибка

if(SrvUtil.getBoolVal(con, "autoDB")){
if(user.equals("")){
printMsg(con,"srvs_create","Пустое имя пользователя!");
return;
}
if(pass.equals("")){
printMsg(con,"srvs_create","Пустой пароль!");
return;
}
if(dbname.equals("")){
printMsg(con,"srvs_create","Пустое имя базы данных!");
return;
}
return; - #лишний , так как бд не создастся а оборвется процедура
}

Сообщение отредактировал HellFaust: 01 Май 2011 - 14:04
Заключил код в теги


#8 dim@X

    Хостер ICQ чатов

  • Пользователи
  • PipPipPipPipPip
  • 1 538 сообщений
  • ГородОрел

Отправлено 04 Январь 2011 - 18:31

БД (сам файл db.sql) должен быть в кодировке UTF-8 (без ВОМ)

Сообщение отредактировал dim@X: 11 Январь 2011 - 16:30


#9 DJ_BaGa091

    Специалист

  • Пользователи
  • PipPipPipPip
  • 211 сообщений
  • ГородUfa

Отправлено 11 Январь 2011 - 06:04

переделал немного CreateService
Скрытый текст

в исходниках создайте в папке ru/jimbot/папку sql дальше db.sql и туда ваши запросы
P.S для тех кому удобно вставлять запросы сразу в исходники =) :rolleyes:

Сообщение отредактировал DJ_BaGa091: 11 Январь 2011 - 11:19


#10 GeniY5651546

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 28 Сентябрь 2011 - 21:55

у мя new UserPreference(UserPreference.CATEGORY_TYPE,"db_create", "Настройки авто создании базы"), и new UserPreference(UserPreference.PASS_TYPE,"db.pass","Пароль root`a",getStringProperty("db.pass"),false) подчеркивает...

#11 mart1wtf

    Специалист

  • Пользователи
  • PipPipPipPip
  • 376 сообщений

Отправлено 28 Сентябрь 2011 - 22:00

так пробуй

new UserPreference(UserPreference.CATEGORY_TYPE, "db_create", "Настройки авто создании базы", ""),
new UserPreference(UserPreference.PASS_TYPE, "db.pass", "Пароль root`a", getStringProperty("db.pass")),

Сообщение отредактировал (c) SieGer: 29 Сентябрь 2011 - 08:24


#12 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 29 Сентябрь 2011 - 10:20

Я вот всё это время не понимаю, зачем нужно осуществлять создание пользователя и вместе с ним необходимую нам базу?
Пользователь-база, пользователь-база, пользователь-база...
Такой мусор делаете Вы, сервис может работать с один и тем же пользователем, но с разными указанными базам.
Следовательно, на одного аккаунта можно установить одного пользователя MySQL.

PS. Не ведаем, что творим.

#13 nek

    Профи

  • Модераторы
  • 2 293 сообщений

Отправлено 29 Сентябрь 2011 - 11:00

А что, мама не учила не класть все яйца в одну корзину?

#14 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 29 Сентябрь 2011 - 14:15

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

Если по твоим словам, мы будет каждое "яичко" раскладывать по упаковочке или же по карзиночке, то пожалуй у нас сил не хватит чтобы донести пару десятков яиц = числу корзин до дома.
Этот факт сравним и с ресурсами, ведь создавая каждый раз нового пользователя, MySQL занимает некую долю памяти на полномочия, права и всякие привилегии.
К такому случаю вообще лучше использовать SQLite раз у нас руки кривые и не умеем грамотно подойти к работе.

#15 nek

    Профи

  • Модераторы
  • 2 293 сообщений

Отправлено 30 Сентябрь 2011 - 00:00

Просмотр сообщенияscano (29 Сентябрь 2011 - 14:15) писал:

nek, уточняй кому комментируешь и адресуй свою похоть тем авторам, которые пишут подобные коды.
Похоть?
ВНЕЗАПНО!

Привилегии хранятся в таблицах MySQL и ничего кроме пары байт дискового пространства не занимают.
А вот если у тебя на одном сервере один юзер и тонна баз, то представь себе такой случай:
Злоумышленник неким образом получает доступ к консоли MySQL сервера или программный доступ.
Тащит/Сносит базы.
Актуального бэкапа нет.
Пользователи отхватывают тонны спама, популярность хостера/чата падает, юзеры негодуют, клиенты требуют бабло обратно и прочие весьма печальные последствия типа судебных исков по ст.13 п.11 - ст.13 п.14 КоАП РФ или по ст.137 УК РФ.
Вот что такое "не хранить все яйца в одной корзине".

P.S.: И да, предвидя фразы типа "кто с этим будет связываться, все же не официально" скажу, сии статьи вполне себе применяются к простым гражданским лицам. Т.е. к кому угодно. И нынче весьма модно и прибыльно их юзать.

#16 alastar3000

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 30 Сентябрь 2011 - 01:57

Полностью согласен со Scano!
бред делать лишнее,а главное СМЫСЛ????

#17 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 30 Сентябрь 2011 - 01:59

Даже слов найти не могу, ты словно как дуб.
Я разве имел ввиду 1 пользователя MySQL'а излагая следующие слова...

Цитата

на одного аккаунта можно установить одного пользователя MySQL
Аккаунт - пользователь в мульти-админке.

Цитата

scano (00:38:03 30.09.11)
не понимаю таких людей..
scano (00:39:44 30.09.11)
при создании сервиса, вы отвечаете Да рядом с "Создать БД", далее вместе с сервисом создаётся пользователь MySQL'а и в нём база с его именем, получается что то вроде...
аккMysql_1_для_акк_1_МультАдминки
- база_1
аккMysql_2_для_акк_2_МультАдминки
- база_1
аккMysql_3_для_акк_3_МультАдминки
- база_1
как видите, возникает вопрос "Зачем создать пользователь в MySQL с одной лишь базой и так для каждого сервиса?", один человек посчитал это лишним, я рассмотрел это и согласился с ним, ведь можно сделать иначе - при создании аккаунта в Jimbot'е, создаётся пользователь в MySQL'е для работы с сервисами, а при создании сервиса, создаётся индивидуальная база в этом же пользователе MySQL'а
Выходит так...
аккMysql_1_для_акк_1_МультАдминки
- база_1_для_сервиса_1
- база_2_для_сервиса_2
- база_3_для_сервиса_3
аккMysql_2_для_акк_2_МультАдминки
- база_1_для_сервиса_1

и т.д
scano (00:40:05 30.09.11)
комфортно, экономично и главное грамотно

Сравним с обычным созданием.
Для чего ты начал задевать вопрос о безопасности не понимаю, ведь мы ничего не меняем, только делаем 1 акк админки = 1 пользователю MySQL'а = Х спец баз
...а то, что у кого-то как-то взломают, то это уже им нужно заботиться о безопасности.

#18 dragon_94

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 1 353 сообщений

Отправлено 30 Сентябрь 2011 - 02:19

у себя реализовал так:
в Основных настройках указываем пользователя и пароль
после чего
когда создаем сервис и ставим галочку на автоматическое создание БД, то он автоматически создает базу в указанном имени пользователя.
удобно для меня.

почему удобно?
потому что часто делаю SQL запросы по все БД, и делать один и тот же запрос несколько раз указывая разных пользователей по мне это бред.

Сообщение отредактировал DRAGON: 30 Сентябрь 2011 - 02:20


#19 Пушкожук

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 617 сообщений
  • ГородМосква

Отправлено 30 Сентябрь 2011 - 06:29

Просмотр сообщенияnek (30 Сентябрь 2011 - 00:00) писал:

А вот если у тебя на одном сервере один юзер и тонна баз, то представь себе такой случай:
Злоумышленник неким образом получает доступ к консоли MySQL сервера или программный доступ.
Тащит/Сносит базы.
Актуального бэкапа нет.
Пользователи отхватывают тонны спама, популярность хостера/чата падает, юзеры негодуют, клиенты требуют бабло обратно и прочие весьма печальные последствия типа судебных исков по ст.13 п.11 - ст.13 п.14 КоАП РФ или по ст.137 УК РФ.
Вот что такое "не хранить все яйца в одной корзине".
У пользователя root всё равно есть полный доступ ко всем базам. Если злоумышленник получит пароль от root, он сможет сделать всё вышеперечисленное, даже если для каждой базы был создан отдельный пользователь.

#20 WOLF_2010

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 183 сообщений

Отправлено 01 Февраль 2012 - 16:48

подскажите почему выделяет красным MainProps.AddDirectory(ns);





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей