MySQL复制一个数据库

3
我想将位于同一服务器上的database1中的所有数据、模式、过程等复制到database2。我尝试使用mysqldump,但每次都出现以下错误信息:

ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

这是因为我用于此操作的根用户没有超级特权,而且我无法更改此权限。

有没有不使用mysqldump来完成此操作的解决方案?

请记住,这是一个拥有一百多个表的庞大数据库。

1个回答

2

您需要授予用户权限:

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'yourhost';

如果您想为所有数据库执行此操作:

GRANT SELECT ON *.* TO 'username'@'yourhost';
FLUSH PRIVILEGES;

我正在寻找一种不使用 mysqldump 的方式来复制这两个数据库的解决方案,而且不需要为 root 用户授予特殊权限。由于我无法获得给予 root 用户 SUPER 权限的访问权限。 - Alex Chihaia
1
@AlexChihaia 但是使用这个答案,你可以授予用户SUPER权限,然后你就可以做你需要做的事情了。 - Martin
@Martin 在这里说得有道理,也许我对你的意图有些迷失,但我不明白为什么这不够:/... - developer_hatch
@AlexChihaia,我为您做了一些研究,也许备份和恢复是一种解决方法,请参见此处https://dba.stackexchange.com/questions/64630/sql-server-2012-copy-database-failed。如果这对您有用,请告诉我。 - developer_hatch
@Martin,就像我之前说的那样,我没有访问权限来给予root用户所有特权。 - Alex Chihaia
@AlexChihaia,我不理解你的问题。如果你的用户没有超级权限,那么你确定你的用户是root吗?根据其本质,我会认为root MySQL用户将拥有最高级别的访问权限。请记住,如果您通过“CPanel”等接口登录,仅仅因为您作为“root”登录到该接口,并不意味着接口使用的MySQL也是root。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接