mysql 使用用户权限从所有数据库的转储备份中恢复

mysql 使用用户权限从所有数据库的转储备份中恢复

我已经阅读了很多教程并尝试了很多东西。

我有一个使用 mysqldump 备份的所有数据库的单个 sql 文件(50+)。

当我尝试使用 root 帐户恢复数据库时 - 它们恢复得很好,但具有权限的用户似乎没有被延续。

我无法手动创建每个用户,因为有超过 50 个数据库,并且我不知道每个数据库的密码,也不知道谁拥有哪个数据库,或者每个数据库的用户权限是什么。

我读过无数关于这个主题的教程,但找不到正确的方法来从转储中恢复用户密码和权限。导入后似乎除了 root 作为所有者之外没有其他用户。如果我刷新权限,那么 root 根本无法访问数据库,也无法从命令行访问 mysql。

我完全搞不懂这是如何做到的。

我能找到的唯一命令是

mysql -u root < db_backup.sql

或者

mysql -u root -p < db_backup.sql

这两个选项似乎都不会继承用户、密码和权限

当我进行备份时,它很简单:

mysqldump -u root –all-databases > db_backup.sql

是不是我在备份时做错了什么,没有带用户名、密码和权限,还是我在恢复过程中做错了什么?

* 更新 *

如果我发出:

show databases;

显示所有数据库。

如果我发出:

select user from mysql.user;

显示所有用户。

但是所有用户都无法访问任何数据库。

相关内容