一次mysql 5.5升级到5.6导致的ERROR 1805
来源:互联网 发布:淘宝品牌库查询 编辑:程序博客网 时间:2024/06/03 01:42
前阵子将mysql数据库由5.5.14升级到5.6.36,升级后所有的业务数据都正常。运行了几天后,发现在主库上添加用户失败,错误提示为:ERROR 1805 (HY000): Column count of mysql.user is wrong,提示mysql.user表列的数目不对。还真是个坑。下面是其解决方案。
一、故障现象
mysql> create user 'henry'@'localhost' identified by 'password';ERROR 1805 (HY000): Column count of mysql.user is wrong. Expected 43, found 42. The table is probably corrupted使用grant all privileges 方式创建用户时收到跟上述一样的错误。提示列的数目不对。
二、排错及解决故障
从上面的描述来看,说列的数目不对,因此我们升级后环境mysql.user表的建表语句(robin@localhost)[(none)]>show variables like 'version';+---------------+------------+| Variable_name | Value |+---------------+------------+| version | 5.5.14-log |+---------------+------------+1 row in set (0.01 sec)(robin@localhost)[(none)]>show create table mysql.user\G*************************** 1. row ***************************Table: userCreate Table: CREATE TABLE `user` (`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',............`plugin` char(64) COLLATE utf8_bin DEFAULT '',`authentication_string` text COLLATE utf8_bin,PRIMARY KEY (`Host`,`User`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'安装一个新的mysql 5.6.36后查看mysql.user表的建表语句mysql> show variables like 'version';+---------------+--------+| Variable_name | Value |+---------------+--------+| version | 5.6.36 |+---------------+--------+1 row in set (0.01 sec)mysql> show create table mysql.user\G*************************** 1. row ***************************Table: userCreate Table: CREATE TABLE `user` (...........`plugin` char(64) COLLATE utf8_bin DEFAULT 'mysql_native_password',`authentication_string` text COLLATE utf8_bin,`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',PRIMARY KEY (`Host`,`User`) ---上行为多出的列,即先前使用主从复制时password_expired列没有) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'--为升级后的mysql 5.6.36手工添加这个password_expired列mysql> alter table mysql.user add column `password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N';Query OK, 10 rows affected (0.00 sec)Records: 10 Duplicates: 0 Warnings: 0--再次创建用户成功mysql> grant all privileges on *.* to 'henry'@'%' identified by 'henrypwd';Query OK, 0 rows affected (0.00 sec)
阅读全文
0 0
- 一次mysql 5.5升级到5.6导致的ERROR 1805
- 记一次因升级宿主机 Python 导致的 ImportError
- MySQL从5.5升级到5.6,TIMESTAMP的变化
- linux上的mysql从5.5升级到5.6
- ubuntu mysql 5.5 升级到5.6.16
- 修复 mac os 升级后导致的xcrun: error:
- MySQL 5.1升级到MySQL 5.5的步骤
- centos升级mysql到5.5
- 源码安装 mysql 5.5.20升级到mysql 5.6.25
- 记一次ELK从5.5.x升级到6.0.0的过程
- 一次非法关机导致mysql数据表损坏的实例解决
- centos 升级mysql 5.1 到 mysql 5.5
- MySQL数据库5.0升级到5.1,再升级到5.5
- centos yum升级到最新的mysql 5.6
- 关于mysql数据库升级到5.6的问题
- PHP 升级到5.5后MySQL的代替法
- PHP 升级到5.5后MySQL的代替法
- PHP 升级到5.5后MySQL的代替法
- 交叉编译器arm-linux-gcc
- BZOJ 3503([Cqoi2014]和谐矩阵-gauss消元)
- 关于MATLAB license到期的解决办法
- Android 图片选择到裁剪之步步深坑
- IDEA 查看SVN历史版本信息中文乱码
- 一次mysql 5.5升级到5.6导致的ERROR 1805
- 遍历List集合的三种方法
- Mybatis应用(一)
- 用PHP实现的单链表
- JAVA快速排序
- MYSQL在导出数据过程中行数受限问题解决方案
- Android 给RecyclerView添加头部和尾部
- STM32的CRH、CRL、ODR和IDR寄存器的使用总结
- SpringBoot 中文手册 --Part IV --35 发送邮件