programing

MariaDB 가져오기 최대 키 길이

showcode 2023. 6. 9. 22:10
반응형

MariaDB 가져오기 최대 키 길이

현재 DB를 다른 서버로 옮기는 중인데 문제가 발생했습니다.우리의 데이터베이스는 상당히 크고 PphpMyAdmin을 사용하여 새로운 MariaDB 서버로 가져오기를 원할 때 사용됩니다.오류 코드가 발생하여 해결 방법을 알 수 없습니다.결과가 독일어이므로 죄송하지만 기본적으로 키가 너무 깁니다. 최대 키 길이는 767입니다.

MariaDB 버전: MariaDB-10.1.48 서버 버전: Ubuntu 18.04

서버 버전: Ubuntu 18.04

이 문제를 도와줄 수 있는 사람이 있다면 우리는 정말로 답변을 해주시면 감사하겠습니다!

예:

CREATE TABLE IF NOT EXISTS `accounts` (
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `owner` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `money` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

결과:

CREATE TABLE IF NOT EXISTS `accounts` (
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `owner` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `money` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
MySQL meldet: Dokumentation

#1071 - Schlüssel ist zu lang. Die maximale Schlüssellänge beträgt 767

제가 알기로는, 당신이 정의하는 것은name VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL기본 키로 설정합니다.에 포함되어 있습니다.utf8mb4_unicode_ci767바이트(또는 3072바이트)의 최대 인덱스 접두사 길이를 4로 나누어 191을 생성해야 합니다.

VARCHAR(191)을 사용하거나 기본 키로 사용하지 않습니다.

사용하다

SET GLOBAL innodb_default_row_format='dynamic';

스크립트에서 또는 my.ini에서 이 매개 변수를 수정합니다.

innodb-default-row-format = dynamic

이 변경을 통해 최대 3072바이트의 열에 대한 인덱스를 만들 수 있습니다.

언급URL : https://stackoverflow.com/questions/72102268/mariadb-import-maximum-key-length

반응형