我们从我的 fedora 机器上卸载 mariadb 并安装 mysql 5.7 社区服务器,安装后一切正常,但我们在不知不觉中运行 mysql_upgrade --force -uUser -p。
现在我无法对我的数据库做任何事情。请帮助,出现以下错误。
mysql> 使用 mysql; ERROR 1820 (HY000):在执行此语句之前,您必须使用 ALTER USER 语句重置密码。
mysql> SET PASSWORD = PASSWORD('root'); ERROR 1805 (HY000): mysql.user 的列数错误。预期 45,发现 46。表可能已损坏
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'secret'; ERROR 1805 (HY000): mysql.user 的列数错误。预期 45,发现 46。表可能已损坏
最佳答案
我遇到了同样的问题。
我就是这样解决的。
service mysql stop
mysqld --skip-grant-tables &
mysql
# Delete the extra column
ALTER TABLE mysql.user DROP COLUMN is_role;
# Update your password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
flush privileges;
quit
现在,您可以运行命令mysql_upgrade -uroot -p
来升级您的数据库。
完成这些后,重新启动您的 mysql 服务器进程回到正常模式。
问题解决了。
关于mysql - 从 mariadb 迁移到 mysql 5.7 产生了密码重置和列数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49891152/