Перейти до

Разработка модуля MySQL


Рекомендованные сообщения

Доступна новая версия модуля mod_store_mysql_0.67.tar.gz

брать там же где и раньше

А есть где-нить описание изменений?.. и правда хотелось бы иметь выбор кодировки в которой хранить на MySQL сервере.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 301
  • Створено
  • Остання відповідь

Top Posters In This Topic

Никак не пойму я... какой выбор кодировки? О чем это все тут толкуют? При создании БД указал кодировку и все дела.

И забыл про нее!

Или вы хотите, чтобы модуль на лету данные перекодировал?

Ссылка на сообщение
Поделиться на других сайтах

на счёт чендж лога:

согласно первоначальной договорённости сейчас правятся тока баги (посмертно), никакие новые фишки не добавляются, тобиж развития нет...

Если интересно что поправили дифф вам в руки!

Ссылка на сообщение
Поделиться на других сайтах

Max, почему так агрессивно настроен, выходной же... :)

Неужели тяжело написать какие баги вы исправили, ведь что-то же нашли раз уж вышла в свет новая версия. :)

Ссылка на сообщение
Поделиться на других сайтах
Никак не пойму я... какой выбор кодировки? О чем это все тут толкуют? При создании БД указал кодировку и все дела.

И забыл про нее!

Или вы хотите, чтобы модуль на лету данные перекодировал?

У меня мускул в цп1251, бд в цп1251, Collation полей в таблицах бд cp1251_general_ci...

Почему тогда в базе вопросики? м.б. потому что мод с мускулом работает по утф8 ?

Ссылка на сообщение
Поделиться на других сайтах

просто кто-нить подскажите мне, плз, где в mysql_store.cpp происходит коннект к базе и синтаксис строки, чтоб после каждого коннекта отправлялся mysql_query("set character set cp1251")

Ссылка на сообщение
Поделиться на других сайтах

Если кому надо, я решил проблему с кодировками таким образом

 

База у меня на сервере хранится в cp1251, STG работает в KOI8-R

 

добавил блок кода

string res = "SET character_set_client = koi8r;";

MysqlQuery(res.c_str(),sock);

res = "SET character_set_connection = cp1251;";

MysqlQuery(res.c_str(),sock);

res = "SET character_set_results= koi8r;";

MysqlQuery(res.c_str(),sock);

res = "SET character_set_server = cp1251;";

MysqlQuery(res.c_str(),sock);

 

в функцию MysqlConnect как на примере ниже.

 

MYSQL *  MYSQL_STORE::MysqlConnect() const {
   MYSQL * sock;
   if ( !(sock=mysql_init(NULL)) ){
       errorStr= "mysql init susck\n";
       return NULL;
   }
   if (!(sock = mysql_real_connect(sock,storeSettings.GetDBHost().c_str(),
                       storeSettings.GetDBUser().c_str(),storeSettings.GetDBPassword().c_str(),
                       0,0,NULL,0)))
               {
                       errorStr = "Couldn't connect to mysql engine! With error:\n";
                       errorStr += mysql_error(sock);
                       return NULL;
               }
       else{

       string res = "SET character_set_client = koi8r;";
       MysqlQuery(res.c_str(),sock);
       res = "SET character_set_connection = cp1251;";
       MysqlQuery(res.c_str(),sock);
       res = "SET character_set_results= koi8r;";
       MysqlQuery(res.c_str(),sock);
       res = "SET character_set_server = cp1251;";
       MysqlQuery(res.c_str(),sock);

                if(mysql_select_db(sock, storeSettings.GetDBName().c_str())){
            errorStr = "Database lost !\n";
            return NULL;
        }
   }
   return sock;
}

Ссылка на сообщение
Поделиться на других сайтах

Все это работает только на mysql версии >= 4.1

И по большому счету не имеет смысла. Потому как есть my.cnf, в котором все что надо можно сделать.

Ссылка на сообщение
Поделиться на других сайтах
Все это работает только на mysql версии >= 4.1

И по большому счету не имеет смысла. Потому как есть my.cnf, в котором все что надо можно сделать.

на версиях ниже с кодировками действительно никогда проблем не было

а как то же самое сделать в my.cnf только для базы стг?

Ссылка на сообщение
Поделиться на других сайтах

Честно уже и не знаю в какой топ писать, ну да хе с ним, может проблема и в модуле mysql...

 

Все это работает только на mysql версии >= 4.1

И по большому счету не имеет смысла. Потому как есть my.cnf, в котором все что надо можно сделать.

Похоже что не все... :)

 

MaйeR, править исходник mysql модуля и снова откампилить?

 

У нас тут присутствуют джедаи gentoo?

Возник следующий спор. При выполнении запроса КК в консоли, выдает результат с БД нормально русский текст (при этом в БД знаки вопроса), при перенаправлении в файл и дальнейшем его просмотре - в файле вместо русских букв точки.

На работе со всеми уже переговорил, это не проблема ОС gentoo и я тоже так считаю. Alferov же считает ЭТО причиной того, что у меня в базе вопросы и в веб админке тоже... Как быть? Че делать то? :)

З.Ы. После того как Alferov пошаманил удаленно на моем сервере, удалось выяснить что раскоментировав строчку в my.cnf - skip-character-set-client-handshake

частично можно решить проблему. Русские символы будут присутствовать, НО при редактировании пользователя текста НЕ будет :( а при редактировании АДМИНОВ все оке...мистикО!

 

Друзья, уже башка болит бицо апстенку, давайте как-то нормально решим этот вопрос ведь не я же один такой... :=

Ссылка на сообщение
Поделиться на других сайтах
Доступна новая версия модуля mod_store_mysql_0.67.tar.gz

брать там же где и раньше

tail /var/log/stargazer.log

2007-09-10 18:54:50 -- Stg v. Stg 2.403b

2007-09-10 18:54:50 -- Message queue created successfully. msgKey=5555 msgID=65536

2007-09-10 18:54:50 -- Timer thread started successfully.

2007-09-10 18:54:50 -- Storage plugin loading failed: /usr/lib/stg/mod_store_mysql.so: Undefined symbol "mysql_store_result"

2007-09-10 18:54:50 -- Load StoragePlugin error.

2007-09-10 18:54:53 -- Queue removed successfully.

2007-09-10 18:54:53 -- StgTimer: Stop successfull.

2007-09-10 18:54:53 -- Stg stopped successfully.

2007-09-10 18:54:53 -- ---------------------------------------------

Нихочет чегото стартовать

Ссылка на сообщение
Поделиться на других сайтах

MAX в чем трабла?

 

2007-09-14 10:17:32 -- Stg v. Stg 2.403b

2007-09-14 10:17:32 -- Message queue created successfully. msgKey=5555 msgID=524288

2007-09-14 10:17:32 -- Timer thread started successfully.

2007-09-14 10:17:32 -- Storage plugin loading failed: /usr/lib/stg/mod_store_myslq.so: undefined symbol: uncompress

2007-09-14 10:17:32 -- Load StoragePlugin error.

2007-09-14 10:17:32 -- Queue removed successfully.

2007-09-14 10:17:32 -- StgTimer: Stop successfull.

2007-09-14 10:17:32 -- Stg stopped successfully.

 

Для сборки использовалось:

 

stg-2.4-2007.01.20-13.47.20.tgz

expat-2.0.0

stg-web_0.07\mysql\mysql-0.67_stg-2.4-2007.01.20-13.47.20.patch

stg-web_0.07\mysql\mod_store_mysql_0.67.tar.gz

 

Пробовал уже все варианты! но не хочет.

Именно в этом составе не работает.

Ссылка на сообщение
Поделиться на других сайтах
  • 7 months later...

в процессе эксплуатации модуля mysql выяснилась неприятная особенность работы сервера БД по дефолту.

а именно: у меня 27 числа сервер стал флудить в лог примерно так:

2008-04-28 21:10:00 -- Cannot write detail stat for user rest-sib. (SessionID: 1209319140-rest-sib-5730dfa6afa13eef68ec)

2008-04-28 21:10:00 -- Couldn't insert data in WriteDetailedStat:

The table 'detailstat_04_2008' is full

2008-04-28 21:10:00 -- Cannot write detail stat for user radiocon. (SessionID: 1209319140-radiocon-77ccdda0c932062d5c3e)

2008-04-28 21:10:00 -- Couldn't insert data in WriteDetailedStat:

The table 'detailstat_04_2008' is full

 

Глянув на размер таблицы detailstat_04_2008 увидел что она размером 4096 мб (это есть системное ограничение mysql на одну таблицу, спасибо platerx).

Поэтому у кого таблицы могут так разрастаться сделать нада следующее:

для старых и текущих таблиц нужно выполнить комманду

 ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;

значение AVG_ROW_LENGTH нужно взять из команды SHOW TABLE STATUS FROM база биллинга LIKE 'table';

 

для новых таблиц:

прописать в конфиге /etc/my.cnf (или где у вас там он лежит):
myisam_data_pointer_size=6
и и перепустить сервер БД
что установит размер внутреннего указателя - 256TB

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...
Честно уже и не знаю в какой топ писать, ну да хе с ним, может проблема и в модуле mysql...

 

Все это работает только на mysql версии >= 4.1

И по большому счету не имеет смысла. Потому как есть my.cnf, в котором все что надо можно сделать.

Похоже что не все... :(

 

MaйeR, править исходник mysql модуля и снова откампилить?

 

У нас тут присутствуют джедаи gentoo?

Возник следующий спор. При выполнении запроса КК в консоли, выдает результат с БД нормально русский текст (при этом в БД знаки вопроса), при перенаправлении в файл и дальнейшем его просмотре - в файле вместо русских букв точки.

На работе со всеми уже переговорил, это не проблема ОС gentoo и я тоже так считаю. Alferov же считает ЭТО причиной того, что у меня в базе вопросы и в веб админке тоже... Как быть? Че делать то? :(

З.Ы. После того как Alferov пошаманил удаленно на моем сервере, удалось выяснить что раскоментировав строчку в my.cnf - skip-character-set-client-handshake

частично можно решить проблему. Русские символы будут присутствовать, НО при редактировании пользователя текста НЕ будет ;) а при редактировании АДМИНОВ все оке...мистикО!

 

Друзья, уже башка болит бицо апстенку, давайте как-то нормально решим этот вопрос ведь не я же один такой... :=

Как решили проблему, когда при редактировании Аккаунта пустые поля. Я уже столько бюсь, ничего не выходит!

Ссылка на сообщение
Поделиться на других сайтах
переведи все в одну кодировку

я так понял в koi8-r?

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Одна проблема решилась, появилась другая!

1. при просмотре списка Аккаунтов в поле ФИО, Адрес... вот такое:

?????? ??????і? ÷?????????

?.??????, ???.?.?????????????, 13 ??.56

 

2. И веб-морда, открывается в cp1251, тоесть вся страница отображается вот в таких:

рПМШЪПЧБФЕМЙ

» уРЙУПЛ БЛЛБХОФПЧ

» рПЙУЛ БЛЛБХОФБ

» дПВБЧЙФШ БЛЛБХОФ

» лФП Ч Online

только когда поменять кодировку в експлорере на koi8-r тогда отображает нормально.

Відредаговано ankos
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...