9

我创建了一个mysqldump --all-databases 并将所有数据库转移到新服务器。它不起作用,因为debian-sys-maint用户密码不匹配。所以我更改了这个用户的密码。之后,我重新启动服务器并收到此错误。

第 1 行的错误 1577 (HY000):无法继续,因为发现事件调度程序使用的系统表在服务器启动时损坏 第 1 行的错误 1547 (HY000):mysql.proc 的列数错误。预期 20,发现 16。表可能已损坏

我不知道这之后还会出现多少错误。所以我认为只使用与我的应用程序关联的数据库创建转储(mysqldump --databases)。

现在如何迁移用户?有什么标准方法吗?

更多信息:

New Server version: 5.1.63-0+squeeze1 (Debian)
Old Server version: 5.0.51a-24+lenny5 (Debian)
4

1 回答 1

10

您可能需要运行mysql_upgrade,因为您的 MySql 版本不同。

但是,作为一般规则,不要将mysql系统模式从一台服务器复制到另一台服务器。因此,据我所知,没有将用户和用户权限从一台服务器复制到另一台服务器的“标准”方式。

如果您真的想要/需要这样做,请尝试以下操作:

$> mysql --silent --skip-column-names -e"show grants for user@host"

上面的输出GRANT语句可以直接输入目标服务器以创建用户并给予相同的授权。

但是,如果您的目标服务器是空的,您可以将整个数据文件夹从旧服务器移动到新服务器,然后在新服务器上运行从 5.0 到 5.1 的标准升级过程

于 2012-11-04T11:35:06.230 回答