将MySQL数据库从服务器(A)迁移到服务器(B)时,应将哪些表转储到服务器(B),包括用户授权? 我不想手动重新input用户帐户和密码。 我希望使用像Navicat这样的第三方应用程序来做到这一点,而不使用mysqldump。 我的理解是下面的表格包含用户账号(授权)数据:
mysql> db
mysql>用户
不过,我读过, MySQL表不需要从服务器(A)迁移到服务器(B)以及information_scheme表。 但是,如果mysql表不需要迁移,除非该评论是不正确的,我如何迁移我的用户授权信息与主机,用户名,密码等
#!/bin/bash # adapted from (http://www.pyrosoft.co.uk/blog/2006/10/18/show-grants-for-all-users-on-mysql/) ( mysql -pPASSWORD --batch --skip-column-names -e "SELECT user, host FROM user" mysql ) | while read user host do echo "# $user @ $host" mysql -pPASSWORD --batch --skip-column-names -e"SHOW GRANTS FOR '$user'@'$host'" done
这个脚本将“转储”所有的用户权限和他们的哈希密码。 我有导入mysql和information_schema数据库转储的混合结果。
我只是做一个数据库的mysqldump,然后手动镜像数据库用户的权限。 比试图找出出口方式(假定可行和可靠)的用户访问和密码更直接,更容易。
您需要迁移数据库,而不仅仅是表格。 您收到的信息有些不正确,因为mysql数据库是您需要迁移的数据库。 这是包含您的所有安全信息,并将消除手动重build数据的需要。 但是,information_schema是一个虚拟数据库,每次启动MySQL时都会创build一个虚拟数据库,所以这没什么意义。
我build议你使用mysqldump而不是Navicat,这是不可靠的,有时会产生一些非常奇怪和不完整的结果,而mysqldump是专门为这项工作devise的。