备份/恢复用户/密码/权限

Nid*_*ger 20 mysql migration installation

我正在从一台服务器移动到另一台服务器,我想从我的 MySQL 服务器备份所有数据库 + 用户/权限/密码。我发现使用 备份数据库mysqldump,但我不知道如何备份所有用户和给定的权限。有没有办法实现这一点,还是我必须在新服务器上重新设置?

pik*_*kai 19

'mysql' 数据库包含用户/权限/密码。所以把mysql数据库和其他数据库一起转储

mysqldump [options] --all-databases > all_databases_dump.sql

mysqldump -u root -p mysql user > user_table_dump.sql
Run Code Online (Sandbox Code Playgroud)

这些 mysql 数据库表包含授权信息

user:用户帐号、全局权限和其他非权限列。

db:数据库级权限。

tables_priv:表级权限。

columns_priv:列级权限。

procs_priv:存储过程和函数权限。

恢复交叉检查后

select Host, user, password from user ;

SHOW GRANTS FOR 'user'@'localhost';
Run Code Online (Sandbox Code Playgroud)

  • 警告。如果您将其加载到较新版本的 MySQL 中,`mysql.user` 的转储可能会由于架构更改而失败。 (8认同)
  • 恢复后,您可能/将还需要对新 mysql 的“刷新权限;”。像`mysql -u root -p -e'flush privileges;'` 这可能/也会将你的新服务器上的root mysql 密码设置为旧服务器的root 密码,所以请确保你知道那是什么。 (3认同)