我有一个 redhat linux 服务器。
我运行了一下yum update mysql
,一切正常。问题是,当我进入 phpMyAdmin 时,所有数据库都被删除了。因此,我使用“导入”来导入我在操作之前备份的数据库,但在中间出现了一个错误,提示“主键重复”(尽管我在文件中找不到它)。
phpMyAdmin 列出了到那时为止创建的所有表。当我使用SELECT * FROM table_which_caused_error
查询时,我得到了所有行,即使这个表没有列在表列表中。但是,当我尝试运行“DROP TABLE table_which_caused_error”时,我收到一条错误消息,提示“表不存在”。
有什么问题吗?
谢谢,
乔尔
答案1
升级 mysql 后需要运行 mysql_upgrade。据我所知,在 CentOS 和 remi 版本的 mysql 中,它没有添加到 rpm 后处理中。当然,你也想看看 /etc/init.d/mysqld restart && /etc/init.d/httpd restart 是否有帮助。
人mysql_upgrade:
mysql_upgrade 检查所有数据库中的所有表是否与 MySQL Server 的当前版本不兼容。mysql_upgrade 还会升级系统表,以便您可以利用可能已添加的新权限或功能。
每次升级 MySQL 时都应执行 mysql_upgrade。它取代了较旧的 mysql_fix_privilege_tables 脚本,该脚本已在 MySQL 5.5 中删除。
答案2
在 phpMyAdmin 的“设置”选项卡中,您可以尝试检查以下值:
设置 -> SQL 查询 -> 忽略多个语句错误如果您使用 CSV 格式:
设置 -> 导入 -> CSV -> 插入错误时不要中止如果您使用 SQL 格式:
设置 -> 导出 -> SQL -> 使用忽略插入
你用我的答案这里详细