Mysql错误提示Plugin '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' is not loaded

@vrqq  June 4, 2016

Part1 事件经过

home-brew安装的mysql,新版MySQL,使用旧版数据库管理软件Sequel Pro,然后创建了一个新用户,准备开发用,密码是123456。。。
顺便导入了一波从别的机子上考过来的旧版本数据库文件,直接复制粘贴的,然后chmod。。

然后创建完使用php连接mysql时候报错,提示:

Plugin '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' is not loaded

我就琢磨卧槽升级完mysql怎么了,当时脑子思路有点乱这是啥意思。。
看看mysql.user表,密码是空的。。。。。。

看了看mysql的error.log有几个相关的

2016-06-04T12:18:24.916320Z 0 [ERROR] Column count of performance_schema.events_statements_current is wrong. Expected 41, found 40. Created with MySQL 50622, now running 50713. Please use mysql_upgrade to fix this error.
2016-06-04T12:18:24.916431Z 0 [ERROR] Column count of performance_schema.events_statements_history is wrong. Expected 41, found 40. Created with MySQL 50622, now running 50713. Please use mysql_upgrade to fix this error.
2016-06-04T12:18:24.917909Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_global_by_event_name' has the wrong structure
2016-06-04T12:18:24.917936Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_by_account_by_event_name' has the wrong structure
2016-06-04T12:18:24.917958Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_by_host_by_event_name' has the wrong structure

......类似很多

顺便网上查了查,不明真相。。。。。
看着这个6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9眼熟,应该是PASSWORD(123456)的结果,。

Part2 修复以及真实原因推测

期间试了repair table无果。。
我看网上也说了,log里也说了,感觉不靠谱,索性试试吧。。

mysql_upgrade -uroot -p

倒是不错,提示了一堆。。

然后使用SequelPro修改用户还是报错。。打开mysql.user表发现诶结构怎么变了。。
看看原来的那条数据:

User | plugin                                   | authentication_string
-----|------------------------------------------|----------------------
ug   | 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | (空)
root | mysql_native_password                    | xxxxxx

恍然大悟!

原来是旧版的mysql.user表和新版的这个表格式是不一样的,正巧plugin字段是原来的password字段的位置,若是手工修改这个表也可以添加用户,但是若是使用数据库管理工具,他会按照新版的格式来改旧版的表...正好位置错了。。。。。。
不只是user表,许多表里面的结构都变了,此次升级包括TIMESTAMP数据类型也有所变化。。。。。。我说怎么有许多莫名其妙的小错误。。
修复倒是简单,用新版工具重新起个户头就可以了!

得到了一个以前从没重视过的教训:
从别的电脑搞来的数据库文件一定要mysql_upgrade一下啊!


添加新评论