Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mysql转储中的授权填充mysql数据库_Mysql_Database_Mysqldump_Mysqlimport - Fatal编程技术网

使用mysql转储中的授权填充mysql数据库

使用mysql转储中的授权填充mysql数据库,mysql,database,mysqldump,mysqlimport,Mysql,Database,Mysqldump,Mysqlimport,我使用以下命令对数据库进行了mysql转储: mysqldump --single-transaction --all-databases --flush-privileges -h HOST -u USER -p PASSWORD 我特意使用了--all databases标志,以确保我获得了我创建的所有用户以及他们授予的权限。但当我以root用户身份运行到新数据库的导入时,会出现以下错误:拒绝用户“root”@“%”访问数据库“mysql” 是否有不同的方法将用户和权限从一个数据库复制到另

我使用以下命令对数据库进行了mysql转储:

mysqldump --single-transaction --all-databases --flush-privileges -h HOST -u USER -p PASSWORD
我特意使用了
--all databases
标志,以确保我获得了我创建的所有用户以及他们授予的权限。但当我以root用户身份运行到新数据库的导入时,会出现以下错误:
拒绝用户“root”@“%”访问数据库“mysql”


是否有不同的方法将用户和权限从一个数据库复制到另一个数据库?

我使用SHOW GRANTS语句来获取权限,例如:

SHOW GRANTS FOR foo@'%'
返回如下内容:

Grants for foo@%                                                                                                                  
--------------------------------------------------------------------------------------------------
GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*B3CD------------------------------------'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, EXECUTE ON `db`.* TO 'foo'@'%'
GRANT SELECT ON `mysql`.`proc` TO 'foo'@'%'
我可以轻松地获取输出,添加分号语句终止符,进行任何其他必要的修改,并在另一个数据库上执行它们


对于需要迁移的任何用户,只需重复上述操作。

我使用SHOW GRANTS语句来获取特权,例如:

SHOW GRANTS FOR foo@'%'
返回如下内容:

Grants for foo@%                                                                                                                  
--------------------------------------------------------------------------------------------------
GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*B3CD------------------------------------'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, EXECUTE ON `db`.* TO 'foo'@'%'
GRANT SELECT ON `mysql`.`proc` TO 'foo'@'%'
我可以轻松地获取输出,添加分号语句终止符,进行任何其他必要的修改,并在另一个数据库上执行它们


只要对需要迁移的用户重复这一点。

我想这是可行的。但是有点痛。有没有更精简的方法?谢谢可能有一种更精简的方法。我就是这样做的。至于获取mysql数据库的mysqldump,然后尝试将其全部导入另一个数据库。。。我不会这么做,因为mysql数据库中除了user、db和tables_priv之外还有很多表,我没有看到(或寻找)任何关于这样做的说明/警告。至于实际的错误消息,我认为这是因为用户
root@'
未定义或密码错误。对特权表的DML更改需要刷新特权才能生效。我想这是可行的。但是有点痛。有没有更精简的方法?谢谢可能有一种更精简的方法。我就是这样做的。至于获取mysql数据库的mysqldump,然后尝试将其全部导入另一个数据库。。。我不会这么做,因为mysql数据库中除了user、db和tables_priv之外还有很多表,我没有看到(或寻找)任何关于这样做的说明/警告。至于实际的错误消息,我认为这是因为用户
root@'
未定义或密码错误。对特权表的DML更改需要刷新特权才能生效。