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

Shi*_*dim 9 mysql migration permissions 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)
Run Code Online (Sandbox Code Playgroud)

Ran*_*eed 10

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

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

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

$> mysql --silent --skip-column-names -e"show grants for user@host"
Run Code Online (Sandbox Code Playgroud)

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

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