Category Archives: MySQL

BILLmanager and Partner programm accounts

SELECT a.partner AS partner_id,
aa.name AS partner_name,
a.id AS account_id,
a.name AS account_name
FROM account a
LEFT JOIN account aa ON a.partner=aa.id
WHERE a.level = 5 AND a.partner IS NOT NULL;
 
+------------+-------------------------------+------------+---------------+
| partner_id | partner_name                  | account_id | account_name  |
+------------+-------------------------------+------------+---------------+
|          5 | Иванов Иван Иванович (ivan)   |        114 | Юзер7 (user7) |
|          5 | Иванов Иван Иванович (ivan)   |        115 | Юзер8 (user8) |
|         79 | Петров Петр Петрович (petr)   |        101 | Юзер5 (user5) |
|        102 | Сидоров Сидр Сидорович (sidr) |         37 | Юзер1 (user1) |
|        102 | Сидоров Сидр Сидорович (sidr) |         42 | Юзер2 (user2) |
|        102 | Сидоров Сидр Сидорович (sidr) |         72 | Юзер3 (user3) |
|        102 | Сидоров Сидр Сидорович (sidr) |         87 | Юзер4 (user4) |
|        102 | Сидоров Сидр Сидорович (sidr) |        113 | Юзер6 (user6) |
+------------+-------------------------------+------------+---------------+
8 rows in set (0.00 sec)

BILLmanager and number of VDS templates

SELECT p.id, p.name, COUNT(dp.diskimage) AS templates
FROM pricelist p
LEFT JOIN diskimage2pricelist dp
ON p.id=dp.pricelist
WHERE p.type=6
GROUP BY dp.pricelist;
 
+-----+--------------------------------------+-----------+
| id  | name                                 | templates |
+-----+--------------------------------------+-----------+
|  63 | Сервер VDS1 (Базовый)                |        65 |
|  64 | Сервер VDS2 (Стандарт)               |        65 |
|  65 | Сервер VDS3 (Эксперт)                |        65 |
|  66 | Сервер VDS4 (Бизнес)                 |        65 |
|  95 | Сервер VBX1 (Базовый)                |         2 |
|  99 | Сервер VBX2 (Стандарт)               |         2 |
| 103 | Сервер VBX3 (Эксперт)                |         2 |
| 107 | Сервер VBX4 (Бизнес)                 |         2 |
+-----+--------------------------------------+-----------+
8 rows in set (0.00 sec)

MySQL console client tuning

сделаем красивое удобное приглашение

mysql> prompt (\[email protected]\h) [\d] >
PROMPT set to '(\[email protected]\h) [\d] >'
([email protected]) [database] >

где \u — пользователь, \h — хост и \d — база данных

([email protected]) [database] >pager less -iMSx4 -FX
PAGER set to 'less -iMSx4 -FX'

тепереь у нас есть удобная навигация стрелочками туда-сюда и влево-вправо ;)

# cat ~/.my.cnf
[client]
default-character-set=utf8
 
[mysql]
pager = 'less -iMSx4 -FX'
prompt = '(\[email protected]\h) [\d] > '

добавим в конфиг чтобы так было всегда. в раздел [mysql] иначе остальные клиенты (mysqldump или mysqladmin) будут ругаться.

MySQL console client and multi-byte output problem

mysql> SELECT 'John Doe' as 'Джон Доу';
+-----------------+
| Джон Доу |
+-----------------+
| John Doe        |
+-----------------+
1 row in set (0.00 sec)
 
mysql> set NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SELECT 'John Doe' as 'Джон Доу';
+-----------------+
| Джон Доу |
+-----------------+
| John Doe        |
+-----------------+
1 row in set (0.00 sec)

Как видим set NAMES utf8 не помог. оказывается это старая проблема.

# mysql --default-character-set=utf8
 
mysql> SELECT 'John Doe' as 'Джон Доу';
+-----------------+
| Джон Доу        |
+-----------------+
| John Doe        |
+-----------------+
1 row in set (0.00 sec)

создаем конфиг для клиента

# cat ~/.my.cnf
[client]
default-character-set=utf8