@mysql_ru

Страница 26 из 142
Fike
14.06.2017
10:56:39
лол

this is gonna suck

но расскажи, почему я постгресовый фанбой все-таки

Alexey
14.06.2017
10:59:46
не знаю, я не телепат. может детство было тяжёлым, может Олег Бартунов покусал — тебе должно быть виднее почему

Google
Fike
14.06.2017
11:00:55
такая тяжелая дискуссия у меня в последний раз была в школе

Я не фан постгреса. Как там придумали многие вещи, я вообще не понимаю, я бы так не сделал. Мне нравится кассандра - при всех ее косяках. А мускул ей-богу сосет, мы просто вынуждены жить с этим грузом из-за его популярности, пока он либо не апгрейднется, либо не уступит место более корректным и продуманным инструментам. Но лексическое сравнение дат - это за пределами разумного, такое ПО можно только вытеснять чем-то более нормальным при первом возможном случае.

Alexander
14.06.2017
11:06:58
обычно так делают, когда дата-время приходит снаружи и не умеют конвертировать нормально в timestamp

Alexey
14.06.2017
11:07:11
ну лексическое сравнение дат — это ж ты сам придумал, его нет

Fike
14.06.2017
11:08:28
ну лексическое сравнение дат — это ж ты сам придумал, его нет
у тебя правда так горит из-за того, что мускул внезапно оказался не настолько уж хорошим инструментом?

Alexey
14.06.2017
11:09:16
вообще, я заметил одну вещь. на MySQL создали огромное количество систем с миллиардами пользователей по всему миру. и с таймзонами там всё тоже хорошо. Но вот есть такая особая категория экспертов — админ Вася из задрищенского провайдера "Пупкин Телеком". С двумя пользователями. И вот им почему-то их биллинг не пишется без "WITH TIME ZONE", вот ну нет никакой возможности

Fike
14.06.2017
11:09:26
да блин

миллион мух

про таймзоны мы уже выяснили, что их де-факто нет

И да, там все-таки не лексика, но ситуации это не меняет https://dev.mysql.com/doc/internals/en/date-and-time-data-type-representation.html

Alexey
14.06.2017
11:10:19
А расскажи нам, какие супер системы ты создал "болеее корректными и продуманными инструментам"? порази наше воображение

Fike
14.06.2017
11:10:35
может хватит уже аргументации к результатам?

или все-таки нужна ссылка на статью "сперва добейся"?

Google
Alexey
14.06.2017
11:15:18
ссылка не нужна, но определённо добавит веса твоим словам. одно дело, когда админ Вася говорит "ахахаха", другое — когда эксперт с мировым именем, правильно?

Fike
14.06.2017
11:15:58
нет

это аргументация к авторитету

она не стоит ничего

Alexey
14.06.2017
11:16:34
а, ну ok

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

и хранить дату таймштампом в ютиси

Fike
14.06.2017
14:40:00
я попробую еще раз

каким образом это мне вернет уже удаленную таймзону из даты?

Я сконвертировал +03:00 в UTC. Как я эти +03:00 обратно достану?

KOT
14.06.2017
15:04:58
Математикой

Aleksandr
14.06.2017
15:12:42
меня как-то тимлид и дба приучили даты в базе хранить таймштампом в ютиси в итоге я не парюсь в расхождениях, а просто присовываю к дате таймзону пользователя и у меня смещается так как необходимо

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

Fike
14.06.2017
15:19:57
Математикой
Сегодня какой-то божественный день. Смотри, есть А = 24. Известно, что А было получено как разность Б и В. Как я их получу, зная тлько А?

прямого доступа к базе никто никогда из конечных пользователей иметь не будет, а прикладные языки умеют работать с таймштампами
Боже, можно вообще не работать внутри прикладного языка. Мускул скидывает свою проблему на конечных пользователей. И, чсх, они еще и рады.

Alexey
14.06.2017
16:00:37
оно вот о чём хочет сказать, но не может сформулировать: в некоторых СУБД вместе с данными (бинарным представлением времени в UTC) можно хранить инфу о представлении (с какой таймзоной изначально сохраняли). кому-то такое может быть полезно, кому-то нафиг не нужно

Fike
14.06.2017
16:00:49
оно

Alexey
14.06.2017
16:01:19
но фанбой на то и фанбой, что из какой-то частности нужно растопырить пальцы пошире и произнести что-нибудт пафосное. "разрабы мускля ничего не знают про таймзоны". гыгы

Fike
14.06.2017
16:02:55
могу ли я считать это за официальное признание отсутствия внятных аргументов?

Google
Alexey
14.06.2017
16:03:23
какие аргументы тебе нужны, о мой юный друг?

Fike
14.06.2017
16:03:47
да хоть какие-нибудь, мой паясничающий оппонент

Alexey
14.06.2017
16:04:08
да я всё что хотел уже сказал. даже не знаю, что тут может быть непонятного

Fike
14.06.2017
16:04:18
ты ничего по сути-то не сказал

и самое смешное, что фанбой-то здесь ты

Bocharnikov
15.06.2017
03:34:55
я извиняюсь но у меня походу всё таже ошибка

кто может помочь разобраться

щя скину ещё раз до чего докопался

Короче что имеем: Система- RHEL 6 МуSQL+MariaDB Конфиг: my.cnf [mysqld] local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql innodb_file_per_table=1 max_allowed_packet=32M low-priority-updates tmp_table_size = 128M max_heap_table_size = 64M table_cache = 1024 innodb_additional_mem_pool_size = 128M innodb_buffer_pool_size = 2G innodb_flush_method = O_DIRECT innodb_io_capacity = 2000 innodb_flush_log_at_trx_commit = 2 innodb_support_xa = 0 innodb_log_buffer_size = 128M event_scheduler = 1 query_cache_type = 1 query_cache_size = 134217728 join_buffer_size=1M query_cache_limit=2M sort_buffer_size=2M read_buffer_size=2M read_rnd_buffer_size=4M key_buffer = 256M key_buffer_size=64M max_connections = 256 thread_cache_size=100 wait_timeout = 100 interactive_timeout = 100 connect_timeout = 100 collation-server=utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/lib/mysql/mysql.sock Логи рестарта MySQL: 170615 8:38:29 [Note] /usr/sbin/mysqld: Normal shutdown 170615 8:38:29 [Note] Event Scheduler: Killing the scheduler thread, thread id 1 170615 8:38:29 [Note] Event Scheduler: Waiting for the scheduler thread to reply 170615 8:38:29 [Note] Event Scheduler: Stopped 170615 8:38:29 [Note] Event Scheduler: Purging the queue. 0 events 170615 8:38:29 InnoDB: Starting shutdown... 170615 8:38:29 InnoDB: Waiting for 2 pages to be flushed 170615 8:38:33 InnoDB: Shutdown completed; log sequence number 395586090474 170615 8:38:33 [Note] /usr/sbin/mysqld: Shutdown complete 170615 08:38:33 mysqld_safe mysqld from pid file /var/lib/mysql/nabu.ktnet.kg.pid ended 170615 08:38:34 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 170615 8:38:34 [Note] /usr/sbin/mysqld (mysqld 5.5.53-MariaDB) starting as process 18324 ... 170615 8:38:34 InnoDB: The InnoDB memory heap is disabled 170615 8:38:34 InnoDB: Mutexes and rw_locks use GCC atomic builtins 170615 8:38:34 InnoDB: Compressed tables use zlib 1.2.3 170615 8:38:34 InnoDB: Using Linux native AIO 170615 8:38:34 InnoDB: Initializing buffer pool, size = 2.0G 170615 8:38:34 InnoDB: Completed initialization of buffer pool 170615 8:38:34 InnoDB: highest supported file format is Barracuda. 170615 8:38:35 InnoDB: Operating system error number 2 in a file operation. InnoDB: The error means the system cannot find the path specified. InnoDB: If you are installing InnoDB, remember that you must create InnoDB: directories yourself, InnoDB does not create them. 170615 8:38:35 InnoDB: Error: trying to open a table, but could not InnoDB: open the tablespace file './host_newbaza_azyk/wz0yt_content.ibd'! InnoDB: Have you moved InnoDB .ibd files around without using the InnoDB: commands DISCARD TABLESPACE and IMPORT TABLESPACE? InnoDB: It is also possible that this is a temporary table #sql..., InnoDB: and MySQL removed the .ibd file for this. InnoDB: Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html InnoDB: for how to resolve the issue. 170615 8:38:35 InnoDB: Waiting for the background threads to start 170615 8:38:36 Percona XtraDB (http://www.percona.com) 5.5.52-MariaDB-38.3 started; log sequence number 395586090474 170615 8:38:36 [Note] Plugin 'FEEDBACK' is disabled. 170615 8:38:36 [Note] Server socket created on IP: '0.0.0.0'. 170615 8:38:36 [Note] Event Scheduler: Loaded 0 events 170615 8:38:36 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.53-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server 170615 8:38:36 [Note] Event Scheduler: scheduler thread started with id 1 Короче есть небольшой хостинг. На нем панелька плеск, кучу сайтов, все при создании своих баз указывают localhost из phpMyAdmin. Но появилось 2 сайта с ошибками на базу. У первого явно был конект потерян с сокетом и там было написано. Error:2002 S

QLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) (сделаю небольшое отступление и скажу что многие пишут всякую охинеую про то как это лечить, кто то говорит что нет места, я естественно это проверил, места валом, кто-то говорит что отключи SElinux (пока и не трогал его т.к. до этого все же работало), кто-то просто говорит что эта 111 ошибка появлятся в момент когда мускул банально лежит, опять же, я уже раз 10 его рестартовал. и рестартуется он со статусом sucsess! [[хрен знает как это слово писать, пишу наскоряк]) у второго был движок DataLife engine. C ошибкой на 52 строку в файле /engine/classes/mysql.php Cтрока там вот такая: "$this->display_error(mysqli_connect_error(), '1');" Ну её точно никто не менял. И бог с ней. Как меня уверяют что сайты оба перестают рабоать ссылаясь на то что "типо мускул у меня падает". Ну ок. Падает так падает. Тут если опустить мускул то у меня и будет таже самая ошибка Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) как мне сказали. НО! Сейчас он поднят. И все сайты не выдают ошибку. Возможно из-за того что я уже 100 раз рестартовал. Логи есть выше. И вот поять же, продолжая про ошибку, и про то что на стэковерфлоу пишут мол где они её встречают. Говортя именно она может появляться когда с CLI подключаешся под рутом в базу Мускула. Хорошо, я попробывал, залогинился и этой ошибки просто небыло. Мускул как мускул ждал когда я буду создавать таблички в нем. Я вышел. Впринципе, у меня даже забикс ни пикнул на мускул. Ну ок. Возможно и было падение но потом всё поднялось. Просто так сложились обстаятельства. Вообщем начал читать я про сокет и про мускул. Понял что есть сетевые , т.е. tcp(шные) и есть unix(овые), да я делаю это впервые, уж простите ? . Вообщем обрисовалось сразу пути куда идти. 1) искать кем занят сокет . (я так и не поня как это делать и продиагностировать) 2) есть ли он вообще? (тоже так и не понимаю есть ли он, но мне кажется есть. и их я так понимаю должно быть не много, а точнее один. ) Ну вот а если по вот этому мануалу разбираться: http://softodom.com/516/mysql-cant-connect-through-socket-reshenie-problemy.html то я подзатупил на команде lsof /var/lib/mysql/mysql.sock выхлоп от нёё вот такой кстати: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 24123 mysql 45u unix 0xffff8803d67ec100 0t0 471909990 /var/lib/mysql/mysql.sock Мне этот выхлоп к сожалению тоже ниочем не говорит. Что ещё проверить? Где я упустил ошибку?

ps aux | grep mysql у меня вот такой: root 9143 0.0 0.0 103312 896 pts/4 S+ 09:39 0:00 grep mysql root 20952 0.0 0.0 106212 1584 pts/4 S 08:43 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/nabu.ktnet.kg.pid mysql 24123 11.1 7.2 3271724 1181816 pts/4 Sl 08:50 5:28 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/lib/mysql/nabu.ktnet.kg.pid --socket=/var/lib/mysql/mysql.sock root 25888 0.0 0.0 100952 664 pts/6 S+ 08:56 0:00 tail -f /var/log/mysqld.log

Muzaffar
16.06.2017
09:16:47
есть тут кто?

который норм владеет процедурами

Dmitry
16.06.2017
09:22:02
ты просто спроси

будет у кого время и желание - ответят

Muzaffar
16.06.2017
09:22:59
есть процедура который получает 3 параметра и записывает в таблицу

PROCEDURE testarm.insertMessage(IN header TEXT, IN body TEXT, IN autono VARCHAR(255)) BEGIN DECLARE idUser int; idUser = SELECT users.id FROM armasoup.users WHERE users.auto_no=autono; INSERT INTO armasoup.in_messages (header, body, id_user) VALUES (header, body, idUser); END

хотя это не есть правильно, но как сделать чтоб код работал?

тут из автоно надо найти айдиЮзера

Dmitry
16.06.2017
09:25:14
SELECT users.id INTO idUser FROM armasoup.users WHERE users.auto_no=autono;

Google
Muzaffar
16.06.2017
09:27:05
тут инто как бы просвоение?

ну как бы наподобие АС?

Dmitry
16.06.2017
09:28:02
SELECT users.id INTO idUser FROM armasoup.users WHERE users.auto_no=autono LIMIT 1 ORDER BY если_записей_несколько_какую_взять;

так даже лучше

да, присвоение, но селект должен одну запись гарантированно возвращать

Muzaffar
16.06.2017
09:29:21
да там один т.к. auto_no это идентификатор пользователей

Dmitry
16.06.2017
09:29:45
он уникален? UK по нему создан?

Muzaffar
16.06.2017
09:30:40
пока нет но он точно будет уникальным

кстати спасибо! :)

Dmitry
16.06.2017
09:49:28
не за что )

Alexey
16.06.2017
09:50:25
а зачем там вообще переменная? почему сразу не сделать INSERT INTO armasoup.in_messages ... SELECT header, body, ... FROM armasoup.users?

Muzaffar
16.06.2017
09:50:48
что надо было записать в "значение по умолчанию" чтоб всегда вставил текущее время и дату?

тип таймстамп

curdate?

Alexey
16.06.2017
09:52:18
кто быстрее?
обычно чем меньше кода, тем быстрее :) там просто ненужный код

Muzaffar
16.06.2017
09:52:49
ясно

)

спасибо!

вроде так CURRENT_TIMESTAMP

Google
Alexey
16.06.2017
10:07:55
так кто ж спорит-то

Muzaffar
16.06.2017
10:15:42
как думаете можно ли из этого сделать таблицу?



Alph
17.06.2017
10:52:19
логи постфикса

Jun 17 15:49:33 autodzhin102 postfix/cleanup[9897]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

в чем может быть проблема?

Ivan
17.06.2017
11:07:16
Ну видимо мускул не запущен

Либо не слушает там, куда стучится постфикс

Alph
17.06.2017
11:09:07
Ну видимо мускул не запущен
мускул запущен , я думаю трабл с паролями может быть

Ну видимо мускул не запущен
в конфиге постфикса пароль указан без какого либо хеша , просто голый человекопонятный

Либо не слушает там, куда стучится постфикс
а при создании пользователя в бд , я указал шифрование для пароля , достаточно мощное , вот как теперь это провернуть

Ivan
17.06.2017
11:10:41
Alph
17.06.2017
11:12:16
Нет, тогда была бы access denied
с мускулом всё норм , работает

Ivan
17.06.2017
11:12:28
Он слушает 3306 порт?

Илии только через сокет принимает соединения?

Страница 26 из 142