作者:WingKeii- | 来源:互联网 | 2023-02-04 15:20
目前我正在使用最新版本的ISPConfig 3.今天我想添加一个数据库和用户.它没用.然后我在PHPmyadmin上尝试了它并且它不起作用.
当我尝试在PHPMyadmin用户面板中添加用户时,我收到以下错误消息:
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行'*''测试'@'localhost''附近使用正确的语法
/var/log/mysql/error.log的输出:
[错误] mysql.user的列数错误.预计42,发现44.该表可能已损坏
Mysql版本:5.5.55-0 + deb8u1 PHPMyadmin版本:4:4.2.12-2 + deb8u2
Debian Linux 8
1> 小智..:
当我在Debian 8(jessie)中将mysql服务器从5.5更新到5.7时,我遇到了同样的问题.在极少数情况下,如果您直接更新绕过版本序列,则可能会发生这种情况.(许多人这样做,但这种更新并未获得官方支持).在我的情况下,当我执行follow命令时它工作正常:
mysql_upgrade --force -uroot -p
我希望这能帮到您
2> jadik..:
从mariadb 10迁移到mysql 5.6也遇到了类似的问题.我收到的错误消息与此页面上列出的其他消息略有不同......当然,这意味着它需要一个不同的解决方案.在尝试修改用户记录时,我收到以下错误:
mysql.user的列数是错误的.预计43,发现46.该表可能已损坏
上面的一些建议有助于解决问题.在看了一个类似的服务器(到mysql 5.6之后)之后,我比较了"corrupted"用户表(来自mariadb 10 mysql.users表)和其他mysql中的"functional"用户表中的字段. 5.6 mysql.users表.
我使用mysql cli和以下命令删除了三个有问题的字段:
mysql -u root -p
use mysql;
alter table mysql.user drop column default_role;
alter table mysql.user drop column max_statement_time;
alter table mysql.user drop column password_expired;
quit
问题解决了!
3> 小智..:
对我来说很烦人
mysql_upgrade -uroot -p
并添加您的密码根目录
4> 小智..:
在我的情况下,并按照错误消息的建议,我运行:
root@mysql-190877524-gm3j4:/# mysql_upgrade -uroot -p***
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.user OK
Upgrading the sys schema.
Checking databases.
[...]
Upgrade process completed successfully.
Checking if update is needed.
这解决了一切.