Page 1 of 2
Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Tue 18. Feb 2020, 17:13
by Sumale.my
Hallo zusammen,
auf einem Free Webspace oder gekauften Webspace kann ich ein bestimmtes Script ganz einfach installieren.
Auf dem eigenen Server nun aber nicht, folgendes erhalte ich:
Specified key was too long; max key length is 1000 bytes
#DROP TABLE IF EXISTS 4images_settings;
CREATE TABLE 4images_settings (
setting_name varchar(255) NOT NULL default '',
setting_value mediumtext NOT NULL,
PRIMARY KEY (setting_name)
) ENGINE=MyISAM;
Wie muss und kann ich das Mysql bzw. phpmyadmin so konfigurieren, dass ich damit keine Probleme mehr habe?
Vielen Dank im Voraus.
LG
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Tue 18. Feb 2020, 17:28
by Jolinar
Von MyISAM auf InnoDB wechseln. InnoDB unterstützt Fulltext Indizierung.
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Tue 18. Feb 2020, 17:35
by Sumale.my
Ich bin absoluter Neuling was das betrifft.
Wie wechsel ich das?
So sieht das aus:
https://easycaptures.com/fs/uploaded/12 ... 268570.png
Unten steht was von InnoDB beim "Typ".
Die Datenbank ist mit dem Keyhelp ACP erstellt worden.
Und die Scripte anzupassen, ist wohl auch nicht der richtige Weg oder?
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Tue 18. Feb 2020, 18:23
by Sumale.my
Wenn ich das im Script ändere, also diese Engine, dann erhalte ich das:
#1071 - Schlüssel ist zu lang. Die maximale Schlüssellänge beträgt 767
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Tue 18. Feb 2020, 19:17
by OlliTheDarkness
Jolinar wrote: ↑Tue 18. Feb 2020, 17:28
von MyISAM auf InnoDB wechseln. InnoDB unterstützt Fulltext Indizierung.
Kommt auf die Serverversion an.
Isam 1000 und InnoDB 767 (Bugversion) wurde aber in einer der letzten gefixxt, womit deine Aussage wieder zutreffend ist.
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 10:59
by Sumale.my
Ich komme nicht weiter.
Ich verstehe nicht wie ich das umstellen soll.
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 11:17
by Florian
Hallo,
diese Einstellungen testen:
innodb-file-format=barracuda
innodb-file-per-table=ON
innodb-large-prefix=ON
innodb_default_row_format = 'DYNAMIC'
Alternativ auf MariaDB 10.3 updaten dort sollen die Limits geändert worden sein.
Natürlich alles ohne Garantie und wie immer bei allen Änderungen vorher ein Backup machen.
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 13:01
by Sumale.my
Ich habe nun die Version MariaDB 10.3.22 installiert.
Nach wie vor der gleiche Fehler bei der Installation:
Specified key was too long; max key length is 1000 bytes
Kannst du mir sagen, wie ich die Befehle ausführen muss?
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 13:48
by Florian
Hallo,
das sind Anweisungen für die Konfigurationsdateien. Also wäre der Platz dafür /etc/mysql/mariadb.conf.d/90-tuning.cnf oder bei Nichtvorhandensein /etc/mysql/mariadb.conf.d/50-server.cnf
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 14:44
by Sumale.my
/etc/mysql/mariadb.conf.d/90-tuning.cnf
# KeyHelp Tuning Settings
# System-Memory < 2 GB
#
[mysqld]
# mySQL Tuning
max_connections = 100
key_buffer_size = 64M
max_allowed_packet = 16M
thread_stack = 256K
tmp_table_size = 128M
max_heap_table_size = 128M
thread_cache_size = 150
table_cache = 8192
table_definition_cache = 4096
open_files_limit = 16544
/etc/mysql/mariadb.conf.d/50-server.cnf
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#
# this is read by the standalone daemon and embedded servers
[server]
# this is only for the mysqld standalone daemon
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
View Screen Capture
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 15:40
by Florian
na dann in die /etc/mysql/mariadb.conf.d/90-tuning.cnf einfügen unterhalb von [mysqld] und den Dienst neu starten.
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 16:04
by Sumale.my
Komisch, der Fehler besteht weiterhin.
Ich habe das Script auf verschiedenen Free Webspace, dem eigenen Webspace erfolgreich installieren können.
Nur auf dem Server nicht.
Die Datei sieht nun so aus:
#
# KeyHelp Tuning Settings
# System-Memory < 2 GB
#
[mysqld]
# mySQL Tuning
max_connections = 100
key_buffer_size = 64M
max_allowed_packet = 16M
thread_stack = 256K
tmp_table_size = 128M
max_heap_table_size = 128M
thread_cache_size = 150
table_cache = 8192
table_definition_cache = 4096
open_files_limit = 16544
# InnoDB Configuration
innodb_file_per_table = 1
innodb_buffer_pool_size = 128M
innodb-file-format = barracuda
innodb-file-per-table = ON
innodb-large-prefix = ON
innodb_default_row_format = 'DYNAMIC'
# Query Cache Configuration
query_cache_limit = 64M
query_cache_size = 128M
query_cache_type = 1
Den Dienst habe ich danach ebenfalls neugestartet, die Datei überprüft, daten stehen alle drin.
Der Fehler bleibt:
DB Error: Bad SQL Query: CREATE TABLE 4images_settings (setting_name varchar(255) NOT NULL default '',setting_value mediumtext NOT NULL,PRIMARY KEY (setting_name)) ENGINE=MyISAM
Specified key was too long; max key length is 1000 bytes
Ist das kompliziert.
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 16:09
by ShortSnow
Hi,
Optimier die Tabelle jetzt einmal. Dann sollten die Felder automatisch auf Dynamic umgestellt werden. Evtl hilft das.
Gruß Arne
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 16:17
by Sumale.my
Wenn du mir kurz erleutern könntest, wie man das macht?
LG
Re: Datenbank MYSQL Fehler: max key length is 1000 bytes
Posted: Wed 19. Feb 2020, 16:25
by Sumale.my
Es betrifft auch nur diese Erstellung:
#DROP TABLE IF EXISTS 4images_settings;
CREATE TABLE 4images_settings (
setting_name varchar(255) NOT NULL default '',
setting_value mediumtext NOT NULL,
PRIMARY KEY (setting_name)
) ENGINE=MyISAM;
Wie gesagt, bei allen systemen klappt es nur auf dem Server nicht... :/