
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
и хранить дату таймштампом в ютиси

KOT
14.06.2017
14:28:40

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

Dmitry
16.06.2017
09:56:06

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

Ivan
17.06.2017
11:12:28
Он слушает 3306 порт?
Илии только через сокет принимает соединения?