Page 1 of 3

[БАГ] Имя базы

Posted: Sat May 11, 2013 10:08 am
by rez0n
Создаю от учетки admin базу данных и получаю следущее сообщение.
Error: database admin_rez0n_lectra is not valid.

Скорее всего ошибка проверки имени, но такое имя использовать вполне можно. По крайней мере cPanel работает с такими именами.

Re: [БАГ] Имя базы

Posted: Sat May 11, 2013 2:41 pm
by ArthurCHi
В имени базы нельзя использовать нижний слешь дефис и другие символы.

Re: [БАГ] Имя базы

Posted: Sat May 11, 2013 7:02 pm
by skid
Ошибка возникает из-за ограничения длины названий в 16 cимволов. Сократите имя базы до admin_rez0n_lct, это решит проблему.

Re: [БАГ] Имя базы

Posted: Sat May 11, 2013 8:20 pm
by rez0n
Может тогда поднять этот лимит? Технических ограничений быть не должно.
Ибо только 6 символов отъедает префикс "admin_", а если имя пользователя будет "ivanchenkoalex_" к примеру.

Re: [БАГ] Имя базы

Posted: Sun May 12, 2013 9:04 am
by skid
К сожалению MySQL все еще лимитирует длину пользователей 16 символами.
http://dev.mysql.com/doc/refman/4.1/en/user-names.html

Re: [БАГ] Имя базы

Posted: Sun May 12, 2013 9:10 am
by ArthurCHi
Да какая разница, по мойму 10 символов вполне достаточно, я не думаю что у вас будет 100500 баз данных, максимум 50 и то с натяжкой......

Re: [БАГ] Имя базы

Posted: Sun May 12, 2013 3:26 pm
by imperio
Это ограничение самого mysql
Лимиты длинны более 16 символов имени пользователя не получиться увеличить.
Сокращайте имя пользователя.

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

Re: [БАГ] Имя базы

Posted: Wed Sep 18, 2013 10:44 am
by Ursadon
Пожалуй займусь некропостингом :)

Есть предложение использовать в качестве префикса БД не логин, а id пользователя.
Тем самым можно сэкономить пару символов в имени. Особенно если создавать пользователей с логином = доменное имя.
Я использую - u<id>.

Если skid'a заинтересует, могу подготовить pull-request с соответствующими изменениями :)

Re: [БАГ] Имя базы

Posted: Wed Sep 18, 2013 12:36 pm
by skid
Идея понятна. Однако, у текущего решения есть два преимущества

1. Обеспечена прозрачность. С первого взгляда можно понять кому принадлежит база
2. Обеспечена возможнотсь миграции акаунтов между серверами. Например, при миграции или даже восстановлении пользователя на другом сервере он может получить другой id. В такой ситуации база данных получит новый префикс и как следствие скрипты на сайте перестанут работать.

Re: [БАГ] Имя базы

Posted: Wed Oct 09, 2013 4:27 am
by Cupoma
Но есть один существенный недостаток.
Если был заведен user с длинным именем (по названию сайта, больше 15 символов), то создать базу данных для него не получится вообще.
Особенно неприятно, если на клиента уже завязаны и работают другие сервисы: почта, днс, бекапы - поскольку придется пересоздавать пользователя:
1. Переименовать user'а нельзя
2. Сократить подставляемый префикс к имени базы нельзя
3. Ввести вручную сразу конечное имя базы нельзя