Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не могу создать таблицы в базе / 7 сообщений из 7, страница 1 из 1
25.10.2017, 11:39
    #39541560
Виталийv4567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Вот версия mysql-я.

Код: powershell
1.
2.
mysqld --version
mysqld  Ver 5.7.19-0ubuntu0.16.04.1 for Linux on i686 ((Ubuntu))



После установки сервера jabberd2 для образца был дан дамп базы данных.

Вот кусок от него:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
--
-- This is the required schema for MySQL. Load this into the database
-- using the mysql interactive terminal:
--
--     mysql> \. db-setup.mysql
--

#CREATE DATABASE jabberd2;
#USE jabberd2;

--
-- c2s authentication/registration table
--
CREATE TABLE `authreg` (
    `username` TEXT, KEY `username` (`username`(255)),
    `realm` TINYTEXT, KEY `realm` (`realm`(255)),
    `password` TINYTEXT ) DEFAULT CHARSET=UTF8;

--
-- Session manager tables.
--

--
-- Active (seen) users
-- Used by: core
--
CREATE TABLE `active` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `time` INT ) DEFAULT CHARSET=UTF8;

--
-- Logout times
-- Used by: mod_iq_last
--
CREATE TABLE `logout` (
    `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `time` INT ) DEFAULT CHARSET=UTF8;

.....



Создание базы в этом файле я закоментировал, так как я её уже создал под другим именем. Эти таблицы создаю вот такой командой:

Код: powershell
1.
mysql -u xxxxxxxxx -pxxxxxxxxx xxxxxxx --default-character-set=utf8 --socket=/chroot/ejabberd/var/run/mysql/mysql.sock < /root/jabberd/mysql.sql



и вот ошибка:

Код: powershell
1.
ERROR 1071 (42000) at line 14: Specified key was too long; max key length is 255 bytes



Если закоментировать:

Код: powershell
1.
2.
3.
4.
CREATE TABLE `authreg` (
    `username` TEXT, KEY `username` (`username`(255)),
    `realm` TINYTEXT, KEY `realm` (`realm`(255)),
    `password` TINYTEXT ) DEFAULT CHARSET=UTF8;



то остальные таблицы создаются нормально. Пробовал менять 255 на 128 не помогло.

И ещё вопрос в этом файле была вот такая таблица:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
--
-- vCard (user profile information)
-- Used by: mod_iq_vcard
--
CREATE TABLE `vcard` (
    `collection-owner` VARCHAR(255) NOT NULL, KEY(`collection-owner`(255)),
    `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequence`),
    `fn` VARCHAR(255),
    `nickname` VARCHAR(255),
    `url` VARCHAR(255),
    `tel` VARCHAR(255),
    `email` VARCHAR(255),
    `jabberid` VARCHAR(3071),
    `mailer` VARCHAR(1023),
    `title` VARCHAR(255),
    `role` VARCHAR(255),
    `bday` VARCHAR(255),        # Shouldn't this be a DATE?
    `tz` VARCHAR(7),
    `n-family` VARCHAR(255),
    `n-given` VARCHAR(255),
    `n-middle` VARCHAR(255),
    `n-prefix` VARCHAR(255),
    `n-suffix` VARCHAR(255),
    `adr-street` VARCHAR(255),
    `adr-extadd` VARCHAR(255),
    `adr-pobox` VARCHAR(15),
    `adr-locality` VARCHAR(255),
    `adr-region` VARCHAR(255),
    `adr-pcode` VARCHAR(31),
    `adr-country` VARCHAR(63),
    `geo-lat` VARCHAR(255),
    `geo-lon` VARCHAR(255),
    `org-orgname` VARCHAR(255),
    `org-orgunit` VARCHAR(255),
    `agent-extval` VARCHAR(255),
    `sort-string` VARCHAR(255),
    `desc` TEXT,
    `note` TEXT,
    `uid` VARCHAR(255),
....
    `photo-type` VARCHAR(127),
    `photo-binval` TEXT,
    `photo-extval` VARCHAR(255),
....
    `logo-type` VARCHAR(127),
    `logo-binval` TEXT,
    `logo-extval` VARCHAR(255),
....
    `sound-phonetic` VARCHAR(255),
    `sound-binval` TEXT,
    `sound-extval` VARCHAR(255),
....
    `key-type` VARCHAR(127),
    `key-cred` TEXT,
....
    `rev` VARCHAR(255)
    ) DEFAULT CHARSET=UTF8;



Вопрос, что они хотели сказать строкой:

Код: powershell
1.
`bday` VARCHAR(255),        # Shouldn't this be a DATE?



Комментарий # Shouldn't this be a DATE? пришлось убрать.

За помощь заранее благодарен!
...
Рейтинг: 0 / 0
25.10.2017, 12:16
    #39541593
Виталийv4567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Виталийv4567,

Не понятно почему другие таблицы создаются, а первая нет, на ней выдаёт ошибку.
...
Рейтинг: 0 / 0
25.10.2017, 13:35
    #39541697
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Виталийv4567и вот ошибка:
Код: powershell
1.
ERROR 1071 (42000) at line 14: Specified key was too long; max key length is 255 bytes


Если закоментировать:
Код: powershell
1.
2.
3.
4.
CREATE TABLE `authreg` (
    `username` TEXT, KEY `username` (`username`(255)),
    `realm` TINYTEXT, KEY `realm` (`realm`(255)),
    `password` TINYTEXT ) DEFAULT CHARSET=UTF8;


то остальные таблицы создаются нормально. Пробовал менять 255 на 128 не помогло.
Два индекса с префиксами по 255 символов - дофига. Уменьши один или оба - при дефолтных настройках суммарно до максимум 340 символов.

Виталийv4567что они хотели сказать строкой:Ну, наверное, что это дурь - хранить дату в строковом поле...
...
Рейтинг: 0 / 0
25.10.2017, 13:42
    #39541709
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Виталийv4567,

При расчете ограничений по размеру MySQL считает, что один символ занимает три байта при использовании кодировки UTF-8.
...
Рейтинг: 0 / 0
25.10.2017, 13:52
    #39541722
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Виталийv4567
Код: powershell
1.
ERROR 1071 (42000) at line 14: Specified key was too long; max key length is 255 bytes


Меня больше озадачивает 255 байт там где обычный дефолтный лимит 767 байт был. И есть способы его увеличить до 3072 - а вот что надо сделать чтобы его уменьшить втрое?
...
Рейтинг: 0 / 0
25.10.2017, 13:54
    #39541726
Виталийv4567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Вот что сделал:

Код: powershell
1.
2.
3.
4.
CREATE TABLE `authreg` (
    `username` TEXT, KEY(`username`(64)),
    `realm` TINYTEXT, KEY(`realm`(128)),
    `password` TINYTEXT ) DEFAULT CHARSET=UTF8;




Ошибка та же.
...
Рейтинг: 0 / 0
25.10.2017, 14:10
    #39541753
Виталийv4567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу создать таблицы в базе
Akina,

AkinaДва индекса с префиксами по 255 символов - дофига. Уменьши один или оба - при дефолтных настройках суммарно до максимум 340 символов.

Как уменьшить?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не могу создать таблицы в базе / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]