ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

在尝试刷新MySQL5.7.21权限时遇到错误1146,表'mysql.servers'不存在。通过查看mysql数据库中的表,发现'servers'表定义为InnoDB,但尝试创建时应为MyISAM。删除并重新创建表后问题解决。在后续的mysqldump备份中也遇到类似问题,但更换安装包后问题不再出现。初始化实例时,root用户的临时密码记录在错误日志中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL版本:mysql5.7.21

修改用户权限,刷新权限表,报1146

mysql> flush privileges;

ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

mysql> use mysql;

mysql> show tables;可以看到servers表,在系统mysql 目录下,可以看到server.ibd 和server.frm,可知表定义为innodb表。

mysql> drop table if exists servers;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> show warnings;
+---------+------+-------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------+
| Warning | 1146 | Table 'mysql.servers' doesn't exist |
+---------+------+-------------------------------------+
1 row in set (0.00 sec)

mysql>CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL DEFAULT '',
`Host` char(64) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`Username` char(64) NOT NULL DEFAULT '',
`Password` char(64) NOT NULL DEFAULT '',
`Port` int(4) NOT NULL DEFAULT '0',
`Socket` char(64) NOT NULL DEFAULT '',
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` char(64) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='MySQL Foreign Servers table'

ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

mysql> CREATE TABLE `servers` (

-> `Server_name` char(64) NOT NULL,
-> `Host` char(64) NOT NULL,
-> `Db` char(64) NOT NULL,
-> `Username` char(64) NOT NULL,
-> `Password` char(64) NOT NULL,
-> `Port` int(4) DEFAULT NULL,
-> `Socket` char(64) DEFAULT NULL,
-> `Wrapper` char(64) NOT NULL,
-> `Owner` char(64) NOT NULL,
-> PRIMARY KEY (`Server_name`)
-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Query OK, 0 rows affected(0.01 sec)

可以创建,数据库打开这张表的默认引擎为MyISAM,但是这张表在建表时的引擎为INNODB;

后来,在做mysqldump全库备份时,同样报同样的错误,提示mysql下几张表不存在。后来更换一个安装包,没有在出现这个问题。

并且:安装过程中,初始化实例时,root@localhost临时密码,打印到错误日志里。

 

转载于:https://www.cnblogs.com/elontian/p/8670997.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值