将mysql用户迁移到另一台服务器

时间:2012-11-04 09:53:49

标签: mysql permissions migration debian mysqldump

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

  

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

我不知道在此之后会发生多少错误。所以我认为create dump只包含与我的应用程序相关联的数据库(mysqldump --databases)。

现在如何迁移用户?有没有标准的方式?

更多信息:

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

1 个答案:

答案 0 :(得分:10)

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

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

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

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

以上输出GRANT语句,您可以直接将其提供给目标服务器以创建用户并提供相同的授权。

但是,如果目标服务器为空,则只需将整个数据文件夹从旧服务器移动到新服务器,然后在新服务器上运行标准upgrade procedure from 5.0 to 5.1