navicat连接MySQL数据库时1449-The user specified as a definer
把本机mysql数据库5.6版本的数据备份后,卸载5.6 版本,安装了最新的8.0.27版本,将备份的数据导入mysql中 。然后用navicat连接。报错:
1449-The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exit
然后在命令行窗口查看数据库时,报错:
ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exist
主要是因为在my.cnf配置文件中skip_name*****跳过了域名解析并且删除掉了user表中所有localhost为地址的用户,需要进行升级操作,把这些新用户重新添加回来。
如果mysql版本在8.0.16之后,使用 mysqld.exe --upgrade=FORCE
进行升级。
步骤如下:
- 要使用管理员身份运行,停掉mysql服务:net stop mysql;
- 进入mysql安装目录的bin目录,执行:mysqld.exe --upgrade=FORCE
- 稍等几分钟,更新可能有点慢(过几分钟还没完成就ctrl+c)
- 重启mysql服务:net start mysql
- 登录到mysql,查看数据库,此时不报错,然后用navicat可以正常连接上
如果mysql版本是8.0.16之前的版本,使用 mysql_upgrade -u root -p
进行升级。