我尝试通过运行以下命令列出所有数据库mysql> show databases;
并得到以下错误:-
错误1449(HY 000):指定为定义者的用户('mysql. infosema'@'localhost')不存在
然后我尝试创建用户mysql> create user 'mysql.infoschema'@'localhost' IDENTIFIED BY 'password';
个
得到以下错误:-
错误1726(HY 000):存储引擎“MyISAM”不支持系统表。[mysql.user]
为了解决这个问题,我运行了mysqld --upgrade=FORCE
,但是出现了错误
[错误] [MY-010123] [服务器]严重错误:请阅读手册的“安全”部分,了解如何以root身份运行mysqld!
然后我运行mysqld --user=root
,它工作了。但是没有任何输出消息
我仍然不能列出所有的数据库或连接mysql服务器使用dbeaver-cs工具。所有的网站都启动和运行没有任何问题。
mysql版本8.0.26适用于x86_64上的Linux(源代码分发版)
操作系统- Centos
1条答案
按热度按时间vvppvyoh1#
通常,在执行迁移或备份时,问题可能出在
mysql
数据库中。在备份数据库时,不应使用任何information_schema, mysql,sys and performance_schema
数据库。如果用户是重要的,你可以插入它。从旧的服务器上转储
mysql
数据库的users
表。您可能会在全新服务器上找到4个默认用户,您应该从插入语句中删除这些用户。然后从全新服务器数据库上的转储
use mysql
中复制插入语句,并将其插入。如果新的服务器是MySQL 8+,旧的是5.xx,你会发现缺少的列,只要在插入语句中将其作为空列添加即可。最后6列应该在插入语句中添加。