数据库问题:1449问题
现象:数据库可以连接,重启也正常启动。但查询数据库时,会报下面的错误
报错:The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exists
查看mysql.user时发现少了一个mysql.infoschema
直观原因:就是mysql.user表里面少了一个账号信息:mysql.infoschema,或者新数据库全部数据导入时覆盖掉原本数据库安装时自身生成的infoschema表。
解决:
登录数据库:
mysql -uroot -p"密码"
使用数据库:
use mysql;
插入相应表:
INSERT INTO mysql.user(`Host`,`User`,`plugin`,`authentication_string`,ssl_cipher,x509_issuer,x509_subject) VALUES ('localhost','mysql.infoschema','mysql_native_password','*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE','','','');
刷新权限:
FLUSH PRIVILEGES;
更新表内容:
update mysql.user set Select_priv = 'Y' where User = 'mysql.infoschema';
刷新权限:
FLUSH PRIVILEGES;