mysql主从复制发现一个登录问题,主是docker里的版本是5.6.34,从是编译安装的版本是5.7.16,但发现一个问题是mysqldump之后然后还原到从库的话,发现有时候登录会报以下错:
[root@7-node1 zabbix_agentd.d]# mysqladmin -uzabbix -p ping
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Plugin '*DEEF4D7D88CD046ECA02A80393B7780A63E7E789' is not loaded'
原因是两个版本不一样,导致mysql.user的权限表可能有些差异,但我新建立一个用户又是可以,但重启之后登录又有问题。
解决方法:1、 当root都登录不了的时候,就可以用msyqld_safe –skip-grant-tables &来启动进入
2.进行升级:mysql_upgrade -uroot -p,升级完之后,应该就可以创建用户,重启mysql之后也能正常使用。
参考:http://serverfault.com/questions/761001/mysql-authentification-plugin-is-not-loaded及https://bugs.mysql.com/bug.php?id=79622
执行mysql_upgrade命令,其实这个命令包含一下三个命令:
mysqlcheck –check-upgrade –all-databases –auto-repair mysql_fix_privilege_tables mysqlcheck –all-databases –check-upgrade –fix-db-names –fix-table-names 在每一次的升级过程中,mysql_upgrade这个命令我们都应该去执行,它通过mysqlcheck命令帮我们去检查表是否兼容新版本的数据库同时 作出修复,还有个很重要的作用就是使用mysql_fix_privilege_tables命令去升级权限表。 |
原文链接:mysql登录报插件没有加载的错误及解决方法,转载请注明来源!