我创建了一个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)
答案 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。