【已过时】MySQL 数据库服务启动时出现 ER_WRONG_AUTO_KEY 报错及其解决办法

新建实例且配置完毕后,启动 MySQL 数据库服务,出现以下报错:

3 个赞

可能的解决办法(对我有效):

原理:自行创建,且确保在表中只有一个主键。

过程:启动 MySQL 8.0 Command Line Client,输入密码后,输入以下指令:

注意:别忘了将 MySQL 替换为你的数据库名)

USE MySQL(这里的 MySQL 请替换为你的数据库名);

SHOW KEYS FROM `user` WHERE Key_name = 'PRIMARY';

ALTER TABLE `user` DROP PRIMARY KEY;

ALTER TABLE `user`
ADD `id` int unsigned not null auto_increment primary key,
ADD `name` varchar(255) null,
ADD `flag` bigint unsigned null,
ADD `authority` int unsigned null,
ADD `locales` text null,
ADD `permissions` text null,
ADD `createdAt` datetime null,
ADD `usage` text null,
ADD `timers` text null;

2 个赞

如果出现 ER_NO_DEFAULT_FOR_FIELD: Field ‘ssl_cipher’ doesn’t have a default value 这样的报错

可以继续输入如下指令:

ALTER TABLE `user` MODIFY ssl_cipher VARCHAR(255) DEFAULT 'default_value';

ALTER TABLE `user` MODIFY x509_issuer VARCHAR(255) DEFAULT 'default_value';

ALTER TABLE `user` MODIFY x509_subject VARCHAR(255) DEFAULT 'default_value';
2 个赞

如果你想关闭 ssl

# my.ini
[mysqld]
ssl=0
2 个赞