Thanks for the information.
As you stated above, the current code looks like:
CREATE TABLE log (
lid mediumint(8) unsigned NOT NULL auto_increment,
uid mediumint(8) unsigned NOT NULL default 0,
ip varchar(255) NOT NULL default '0.0.0.0',
type varchar(255) NOT NULL default '',
agent varchar(255) NOT NULL default '',
description text,
extra text,
timestamp DATETIME,
PRIMARY KEY (lid) ,
KEY (uid) ,
KEY (ip) ,
KEY (type) ,
KEY (timestamp)
) ENGINE=MyISAM;
CREATE TABLE access (
ip varchar(255) NOT NULL default '0.0.0.0',
request_uri varchar(255) NOT NULL default '',
malicious_actions varchar(255) NOT NULL default '',
expire int NOT NULL default 0,
KEY (ip),
KEY (request_uri),
KEY (malicious_actions),
KEY (expire)
) ENGINE=MyISAM;
Can you try the following to see if it resolves the issue you're seeing? As you have determined the keys are too long for MySQL 8. I've made some minor changes to what you've found to attempt to minimize the length of keys where appropriate to cover a majority of the cases. Unfortunately it's difficult to set an exact key length for some of the keys since the length of data in those fields can vary quite a bit.
CREATE TABLE log (
lid mediumint(8) unsigned NOT NULL auto_increment,
uid mediumint(8) unsigned NOT NULL default 0,
ip varchar(255) NOT NULL default '0.0.0.0',
type varchar(255) NOT NULL default '',
agent varchar(255) NOT NULL default '',
description text,
extra text,
timestamp DATETIME,
PRIMARY KEY (lid) ,
KEY (uid) ,
KEY (ip (50)) ,
KEY (type(64)) ,
KEY (timestamp)
) ENGINE=MyISAM;
CREATE TABLE access (
ip varchar(255) NOT NULL default '0.0.0.0',
request_uri varchar(255) NOT NULL default '',
malicious_actions varchar(255) NOT NULL default '',
expire int NOT NULL default 0,
KEY (ip(50)),
KEY (request_uri(192)),
KEY (malicious_actions(128)),
KEY (expire)
) ENGINE=MyISAM;