mysqldump 不保存用户密码
mysqldump is not saving user password
我正在使用我的sql转储来保存我的数据库,现在想完全重建它,包括数据库、用户和用户权限。
mysqldump --databases my_db mysql -u root -p > mysqldump.sql
这会生成 sql 以创建数据库并在以下 table 中创建用户:
插入 db
值('localhost'、'my_db'、'my_user'、'Y'、'Y'、'Y'、 'Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
但是,用户的密码没有出现在文件中的任何位置,我不清楚在重新创建数据库后如何使用该用户访问数据库。
我不能使用 --all-databases 选项,因为另一个数据库有大量数据,我不想在文件中使用它。
用户名和密码不是数据库的一部分,而是特殊mysql数据库的一部分。如果要复制用户帐户,请转储 mysql 数据库并在另一端恢复它,然后使用 flush privileges
命令刷新数据库中的用户 table。
您正在查看转储中不正确的 table:
看看 table:
CREATE TABLE `user` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL Etc
之后的 INSERT 语句包含您的密码
每当您将权限分配给任何用户时,条目都会按照以下方式进行-
如果您在所有数据库上分配权限,例如 .,则条目将仅在用户 table.
中进行
如果您像 mydb 一样明智地分配权限 db。* 那么一个条目将进入用户 table,其中包含具有 'N' 权限的所有权限并保留用户密码和数据库中的第二个条目 table 其中包含适当的权限。
mysql 数据库包含以下用户权限-
具有用户名和密码的全局权限(所有数据库):用户 table
db 明智的权利:db table
table 明智的权利:tables_priv table
列明智的权利:columns_priv table.
因此您正在检查数据库 table,其中包含数据库权限但不包含密码,因为密码仅存储在用户 table 中。
我正在使用我的sql转储来保存我的数据库,现在想完全重建它,包括数据库、用户和用户权限。
mysqldump --databases my_db mysql -u root -p > mysqldump.sql
这会生成 sql 以创建数据库并在以下 table 中创建用户:
插入 db
值('localhost'、'my_db'、'my_user'、'Y'、'Y'、'Y'、 'Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
但是,用户的密码没有出现在文件中的任何位置,我不清楚在重新创建数据库后如何使用该用户访问数据库。
我不能使用 --all-databases 选项,因为另一个数据库有大量数据,我不想在文件中使用它。
用户名和密码不是数据库的一部分,而是特殊mysql数据库的一部分。如果要复制用户帐户,请转储 mysql 数据库并在另一端恢复它,然后使用 flush privileges
命令刷新数据库中的用户 table。
您正在查看转储中不正确的 table: 看看 table:
CREATE TABLE `user` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL Etc
之后的 INSERT 语句包含您的密码
每当您将权限分配给任何用户时,条目都会按照以下方式进行-
如果您在所有数据库上分配权限,例如 .,则条目将仅在用户 table.
中进行如果您像 mydb 一样明智地分配权限 db。* 那么一个条目将进入用户 table,其中包含具有 'N' 权限的所有权限并保留用户密码和数据库中的第二个条目 table 其中包含适当的权限。
mysql 数据库包含以下用户权限-
具有用户名和密码的全局权限(所有数据库):用户 table db 明智的权利:db table table 明智的权利:tables_priv table 列明智的权利:columns_priv table.
因此您正在检查数据库 table,其中包含数据库权限但不包含密码,因为密码仅存储在用户 table 中。