a_eugene
NoDeny
Пользователь
Карма: 1
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
Сообщений: 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
|
|
« Ответ #2 : 22 Февраля 2010, 21:36:33 » |
|
версия mysql?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #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
Сообщений: 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
Сообщений: 88
|
|
« Ответ #5 : 22 Февраля 2010, 22:05:52 » |
|
Командой сказал , чтобы колонка uid была уникальной. Как мене быть теперь и что следует сделать дальше? Пока я ничего не понял....ошибка валит...
|
|
« Последнее редактирование: 22 Февраля 2010, 22:09:54 от a_eugene »
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #6 : 22 Февраля 2010, 22:25:47 » |
|
1) Вообще-то на мастер слейве нужно было делать
2) Что тебя заставило ставить экспериментальные ветки mysql?
|
|
|
Записан
|
|
|
|
a_eugene
NoDeny
Пользователь
Карма: 1
Offline
Сообщений: 88
|
|
« Ответ #7 : 22 Февраля 2010, 23:01:13 » |
|
FreeBSD я поставил первый раз в жизни 4 месяца назад. До того все у меня крутилось на редхат подобных линуксах (с пятерки, когда еще федоры не было). По неопытности, короче. А с mysql я имел дело как наблюдатель, и кроме как переустановить утерянный пароль ничего не умел.
Поэтому осмелюсь задать глупый вопрос: что имеется ввиду под "мастер слейв"? Сначала ввести команду - потом бэкапить и переносить?
|
|
« Последнее редактирование: 22 Февраля 2010, 23:11:05 от a_eugene »
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #8 : 22 Февраля 2010, 23:11:40 » |
|
Поэтому осмелюсь задать глупый вопрос: что имеется ввиду под "мастер слейв"?
ой, это я непонятно с какого будуна такое написал) Хотел сказать, что нужно было команду на мастере (на том сервере, с которого репликация идет) выполнять, а не на слейве.
|
|
|
Записан
|
|
|
|
versus
|
|
« Ответ #9 : 23 Февраля 2010, 10:50:30 » |
|
На линуксе тоже 6 версию мускула использовал которая даже не бэтта, а альфа ? И после этого спросить почему ошибки ??
|
|
|
Записан
|
|
|
|
a_eugene
NoDeny
Пользователь
Карма: 1
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
|
|
« Ответ #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
Сообщений: 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
Сообщений: 301
|
|
« Ответ #13 : 16 Декабря 2010, 16:42:51 » |
|
Можно ли попросить совета, как сделать так, чтобы файл не раздувался от этих предупреждений?
Как вариант - отключить логи нах... Как второй вариант - использовать т.н. ротацию логов (logrotate)
|
|
|
Записан
|
|
|
|
Aivanzipper
NoDeny
Старожил
Карма: 62
Offline
Сообщений: 387
|
|
« Ответ #14 : 16 Декабря 2010, 16:53:21 » |
|
Можно ли попросить совета, как сделать так, чтобы файл не раздувался от этих предупреждений?
Как вариант - отключить логи нах... Как второй вариант - использовать т.н. ротацию логов (logrotate) тут уровень "Warning", это ж не просто так
|
|
|
Записан
|
|
|
|
|