Фтопку!

Модератор: xM
Зачем оба? Вам мешает STRICT_TRANS_TABLES вот его и убирайте.
Отправлено спустя 4 минуты 32 секунды:doveadm quota recalc -u foo
Плагин работает корректно. А вот пересчёт через doveadm, действительно, искажает доменную квоту.
Вы чего-то недопонимаете. Понаблюдайте как меняются данные непосредственно в базе данных в том или ином случае и поймёте смысл моего поста.
Код: Выделить всё
doveadm quota recalc -u user@domain.tld
Значит проверяйте свои конфиги и базы.
Код: Выделить всё
/usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=dict:User quota::noenforcing:proxy::sqlquota"
Код: Выделить всё
SET @dom = 'my.domain' ;
UPDATE `quota2` t1, (SELECT SUM(`bytes`) bytes, SUM(`messages`) messages FROM `quota2` WHERE `username` LIKE CONCAT('%@',@dom)) t2 SET t1.bytes = t2.bytes, t1.messages = t2.messages WHERE `username` = @dom
Код: Выделить всё
doveadm quota recalc -A
Error: User listing returned failure
doveadm: Error: Failed to iterate through some users
Код: Выделить всё
dovecot[26495]: auth-worker(26553): Error: sql: Iterate query failed: Table 'mailserver.users' doesn't exist (using built-in default iterate_query: SELECT username, domain FROM users)
Я ж говорю, doveadm кривой.
Добавил комментарий тоже.
Она отображается в том случае, если у пользователя нет персональной.
Ещё раз. Доменная квота считается правильно.
Код: Выделить всё
# ./dovequota.sh calc
В теущей версии ошибка только с doveadm.
Код: Выделить всё
myhost:/ # mysql -u root -pmypassword
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Код: Выделить всё
myhost:/ # mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10530
Server version: 10.1.25-MariaDB openSUSE package
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> quit
Bye
Код: Выделить всё
myhost:/ # mysql -u myuser -h 127.0.0.1 -pmypassword -D mydb
ERROR 1045 (28000): Access denied for user 'myuser'@'127.0.0.1' (using password: YES)
myhost:/ # mysql -u myuser -h 127.0.0.1 -p"mypassword" -D mydb
ERROR 1045 (28000): Access denied for user 'myuser'@'127.0.0.1' (using password: YES)
myhost:/ # mysql -u myuser -h 127.0.0.1 -p'mypassword' -D mydb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10456
Server version: 10.1.25-MariaDB openSUSE package
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [mydb]> select * from quota2;
+--------------------+---------+----------+
| username | bytes | messages |
+--------------------+---------+----------+
| mydomain.tld | 3227198 | 26 |
| user1@mydomain.tld | 2412 | 1 |
| user2@mydomain.tld | 1529531 | 6 |
| user3@mydomain.tld | 23249 | 1 |
| user4@mydomain.tld | 564663 | 6 |
| user5@mydomain.tld | 1107343 | 12 |
+--------------------+---------+----------+
6 rows in set (0.00 sec)
MariaDB [mydb]> quit
Bye
Если вы по поводу переменных в SQL запросах, то там апострофы, как обычно.