Биллинговая система Nodeny
01 Ноября 2024, 06:45:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Ошибки в mysql при запуске ядра. После переноса базы.  (Прочитано 15365 раз)
a_eugene
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 88


Просмотр профиля
« : 22 Февраля 2010, 16:47:22 »

Поставил с нуля базу v50.28 с ядром.
Со старого сервера сделал бэкап.
Перенёс базу на новый.
В мониторинге и логах базы все отлично, но в логах /var/db/mysql/my.hostname.err постоянно валит
Цитировать
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET in1=in1+11779
12,out1=out1+57254,in2=in2+0,out2=out2+0,in3=in3+0,out3=out3+0,in4=in4+0,out4=out4+0 WHERE uid=207 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET traf1=5757582
7788,traf2=0,traf3=0,traf4=0,submoney=60.00,startmoney=63.00,packet=3 WHERE uid=207 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET in1=in1+43917
0,out1=out1+61749,in2=in2+0,out2=out2+0,in3=in3+0,out3=out3+0,in4=in4+0,out4=out4+0 WHERE uid=195 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET traf1=3701899
5532,traf2=0,traf3=0,traf4=0,submoney=100.00,startmoney=100.00,packet=4 WHERE uid=195 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET in1=in1+39354
0,out1=out1+44868,in2=in2+0,out2=out2+0,in3=in3+0,out3=out3+0,in4=in4+0,out4=out4+0 WHERE uid=194 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET traf1=2684021
031,traf2=0,traf3=0,traf4=0,submoney=100.00,startmoney=100.00,packet=4 WHERE uid=194 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET in1=in1+66960
,out1=out1+5976,in2=in2+0,out2=out2+0,in3=in3+0,out3=out3+0,in4=in4+0,out4=out4+0 WHERE uid=200 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET traf1=6083674
7504,traf2=0,traf3=0,traf4=0,submoney=100.00,startmoney=101.00,packet=4 WHERE uid=200 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET in1=in1+26013
,out1=out1+9296,in2=in2+0,out2=out2+0,in3=in3+0,out3=out3+0,in4=in4+0,out4=out4+0 WHERE uid=196 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET traf1=4555189
557,traf2=0,traf3=0,traf4=0,submoney=0.00,startmoney=0.00,packet=6 WHERE uid=196 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET in1=in1+2365,
out1=out1+4718,in2=in2+0,out2=out2+0,in3=in3+0,out3=out3+0,in4=in4+0,out4=out4+0 WHERE uid=189 LIMIT 1
100222 16:33:06 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE users_trf SET traf1=1456492
6195,traf2=0,traf3=0,traf4=0,submoney=100.00,startmoney=101.00,packet=4 WHERE uid=189 LIMIT 1

Что может быть? У кого-то было такое?
« Последнее редактирование: 27 Февраля 2010, 22:53:30 от a_eugene » Записан
a_eugene
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 88


Просмотр профиля
« Ответ #1 : 22 Февраля 2010, 20:02:24 »

Как я понял, валят ошибки от uid только следующих
6 7 11 64 68  69 70 97  187 192 193 196 200 207 210

посмотрел, что между ними общего - оказалось, что это те клиенты, у которых установлено, или БЫЛО установлено "всегда онлайн".

Если включаю авторизацию, то ошибка исчезает, если возвращаю "всегда онлайн", то появляется.

Создаю нового клиента и вкл. "всегда онлайн"  -  появляется новая ошибка.

Откуда такой глюк при переносе базы? Что с ним делать?

Может где-то здесь:
Код:
# ifconfig
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=53b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,TSO4,LRO>
        ether 00:1b:21:55:ab:ec
        inet 10.0.0.1 netmask 0xff000000 broadcast 10.255.255.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=53b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,TSO4,LRO>
        ether 00:1b:21:55:ab:ed
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:26:18:d3:c5:5f
        inet 2xx.xxx.xxxx.1 netmask 0xffffff00 broadcast 217.66.99.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
vlan577: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:1b:21:55:ab:ed
        inet 193.x.x.1 netmask 0xfffffffc broadcast 193.110.107.119
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 577 parent interface: igb1
vlan578: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:1b:21:55:ab:ed
        inet 193.x.x.2 netmask 0xfffffffc broadcast 193.110.107.123
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 578 parent interface: igb1

Код:
!/bin/sh -
f='/sbin/ipfw'

ifOut1='vlan577'
ifOut2='vlan578'

${f} -f flush

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any
${f} add 52 allow tcp from any to me 5006
${f} add 53 allow tcp from me 5006 to any
${f} add 54 allow tcp from any to me 3306
${f} add 55 allow tcp from me 3306 to any

${f} add 56 allow tcp from me 1812 to any
${f} add 57 allow tcp from any to me 1812
${f} add 58 allow tcp from me 1813 to any
${f} add 59 allow tcp from any to me 1813

${f} add 60 allow udp from me 1812 to any
${f} add 61 allow udp from any to me 1812
${f} add 62 allow udp from me 1813 to any
${f} add 63 allow udp from any to me 1813

${f} add 64 allow ip from 10.0.0.0/8 to me 53
${f} add 65 allow tcp from 194.x.x.1to me 512-1023
${f} add 66 allow tcp from 194.x.x.233 to me 512-1023
${f} add 67 allow tcp from 2x.x.x.2 to me 512-1023
${f} add 68 allow tcp from 2x.x.x.3 to me 512-1023

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut1}
${f} add 201 skipto 500 ip from any to any via ${ifOut2}

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv ${ifOut1}
${f} add 401 skipto 450 ip from any to any recv ${ifOut2}
${f} add 420 divert 1 ip from any to any
${f} add 450 divert 2 ip from any to any
${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 divert 1 ip from any to any
${f} add 540 allow ip from any to any


${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut1}
${f} add 2051 deny ip from any to any via ${ifOut2}
${f} add 2060 allow udp from any to any 53,7723

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any

Прошу cовета, а  не бить ногами....
« Последнее редактирование: 22 Февраля 2010, 21:24:05 от a_eugene » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #2 : 22 Февраля 2010, 21:36:33 »

версия mysql?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #3 : 22 Февраля 2010, 21:45:51 »

В общем, почитал я в инете причину этого сообщения. Суть в том, что mysql при репликации (ты может ее и не используешь, но она включена) не может гарантировать, что update запрос на мастер сервере при limit проапдейтит именно те строки, которые проапдейтит слейв-сервер. Что интересно - он прав. Поле uid таблицы users_trf По сути уникальное, но mysql об этом не знает т.к. уникальность гарантируется только внутри nodeny. Короче, в консоли mysql выполни такой запрос:

Код:
ALTER TABLE `users_trf` ADD UNIQUE (`uid`)

надо будет подправить стабильную версию. Уточняю: это не ошибка, а предупреждение mysql о том, что разработчик _может_ ошибаться. А может и не ошибаться)
Записан
a_eugene
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 88


Просмотр профиля
« Ответ #4 : 22 Февраля 2010, 21:55:20 »

С которого переношу
Version: '6.0.11-alpha-log'  socket: '/tmp/mysql.sock'  port: 3306  FreeBSD port: mysql-server-6.0.11

На который переношу
Version: '5.5.1-m2-log'  socket: '/tmp/mysql.sock'  port: 3306  FreeBSD port: mysql-server-5.5.1

Сейчас запрос попробую
#mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 65
Server version: 5.5.1-m2-log FreeBSD port: mysql-server-5.5.1

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use bill;
Database changed
mysql> ALTER TABLE `users_trf` ADD UNIQUE (`uid`);
Query OK, 237 rows affected (0.01 sec)
Records: 237  Duplicates: 0  Warnings: 0

mysql>
« Последнее редактирование: 22 Февраля 2010, 22:00:01 от a_eugene » Записан
a_eugene
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 88


Просмотр профиля
« Ответ #5 : 22 Февраля 2010, 22:05:52 »

Командой сказал , чтобы колонка uid была уникальной.
 Как мене быть теперь и что следует сделать дальше?
Пока я ничего не понял....ошибка валит...
« Последнее редактирование: 22 Февраля 2010, 22:09:54 от a_eugene » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #6 : 22 Февраля 2010, 22:25:47 »

1) Вообще-то на мастер слейве нужно было делать

2) Что тебя заставило ставить экспериментальные ветки mysql?
Записан
a_eugene
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 88


Просмотр профиля
« Ответ #7 : 22 Февраля 2010, 23:01:13 »

FreeBSD я поставил первый раз в жизни 4 месяца назад. До того все у меня крутилось на редхат подобных линуксах (с пятерки, когда еще федоры не было). По неопытности, короче. А с mysql я имел дело как наблюдатель, и кроме как переустановить утерянный пароль ничего не умел.

Поэтому осмелюсь задать глупый вопрос: что имеется ввиду под "мастер слейв"?
Сначала ввести команду - потом бэкапить и переносить?
« Последнее редактирование: 22 Февраля 2010, 23:11:05 от a_eugene » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #8 : 22 Февраля 2010, 23:11:40 »

Поэтому осмелюсь задать глупый вопрос: что имеется ввиду под "мастер слейв"?
ой, это я непонятно с какого будуна такое написал) Хотел сказать, что нужно было команду на мастере (на том сервере, с которого репликация идет) выполнять, а не на слейве.
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #9 : 23 Февраля 2010, 10:50:30 »

На линуксе тоже 6 версию мускула использовал которая даже не бэтта, а альфа ? И после этого спросить почему ошибки ??
Записан
a_eugene
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 88


Просмотр профиля
« Ответ #10 : 23 Февраля 2010, 11:05:52 »

Спасибо.Выполнил на мастере команду и перенес базу.

Были ошибки по uid
6 7 11 64 68  69 70 97 100 183 187 192 193 196 200 207 210

Остались ошибки по uid
6 7 11 64 68  69 70 97 100 183 196 210
отпали ошибки по тем, кто когда-то был "всегда онлайн".
Остались только "всегда онлайн", которым доступ разрешен или удаленные "всегда онлайн".

И вот такой лог добавился
100223 10:09:15 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE admin_session SET time_expi
re=unix_timestamp()+14400 WHERE salt='T1-882895723NOXNbNtBmsUHFVBQhZFAyg' AND system_id='9669769286' LIMIT 1

Может быть еще и ошибка в rc.firewall? У меня же на сервере BGP и мир и Украина отдельные каналы. В курилке была похожая тема http://forum.nodeny.com.ua/index.php?topic=304.0
Меже это тоже мой случай? Кто-то может помочь?
« Последнее редактирование: 23 Февраля 2010, 19:26:03 от a_eugene » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #11 : 25 Февраля 2010, 22:15:19 »

100223 10:09:15 [Warning] Statement may not be safe to log in statement format. Statement: UPDATE admin_session SET
may грит о том, что мускул как бы предупреждает, т.е ничего страшного в этом нет. Это уже вопрос ко мне. Правильно оформлять поля как уникальные, если это подразумевается. Пофиксим
Записан
evp
NoDeny
Постоялец
*

Карма: -6
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #12 : 16 Декабря 2010, 14:09:30 »

Обнаружил, что у меня файл hostname.err раздулся до 70 ГБ за год  Шокированный

Валятся в него такие же ошибки про [Warning] Statement may not be safe to log in statement format.
Statement: UPDATE users_trf SET traf1=627...

Выполнил, как здесь рекомендуется
Код:
ALTER TABLE `users_trf` ADD UNIQUE (`uid`)

Но предупреждения продолжают сыпаться. a_eugene отписался, что 
Цитировать
отпали ошибки по тем, кто когда-то был "всегда онлайн".
Остались только "всегда онлайн", которым доступ разрешен или удаленные "всегда онлайн".
Проблема в том, что у меня все пользователи "всегда онлайн" и количество таких предупреждений просто немерянное.

Я прекрасно понимаю, что
Цитировать
мускул как бы предупреждает, т.е ничего страшного в этом нет. Это уже вопрос ко мне. Правильно оформлять поля как уникальные, если это подразумевается. Пофиксим

Можно ли попросить совета, как сделать так, чтобы файл не раздувался от этих предупреждений?
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #13 : 16 Декабря 2010, 16:42:51 »

Можно ли попросить совета, как сделать так, чтобы файл не раздувался от этих предупреждений?

Как вариант - отключить логи нах... Как второй вариант - использовать т.н. ротацию логов (logrotate)
Записан
Aivanzipper
NoDeny
Старожил
*

Карма: 62
Offline Offline

Сообщений: 387


206967443
Просмотр профиля
« Ответ #14 : 16 Декабря 2010, 16:53:21 »

Можно ли попросить совета, как сделать так, чтобы файл не раздувался от этих предупреждений?

Как вариант - отключить логи нах... Как второй вариант - использовать т.н. ротацию логов (logrotate)

тут уровень "Warning", это ж не просто так
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!