在 Debian 4.0(Etch)上运行 MySQL 5.0.32。
我正在尝试在同一台服务器上完全克隆 WordPress MySQL 数据库(结构和数据)。我尝试将其转储到 .sql 文件并从命令行导入到新的空数据库中,但导入失败并显示错误消息,提示用户没有“SHOW VIEW”或“CREATE VIEW”权限。尝试使用 PHPMyAdmin 也不起作用。我还尝试使用 MySQL 根用户(但不叫“root”)执行此操作,结果显示“访问被拒绝”错误。我非常困惑问题出在哪里。
关于克隆 MySQL DB 并向用户帐户授予所有权限的任何指针都很有用(特别是对于 MySQL 5.0.32)。
谢谢!
更新:为了让该问题更加清晰。
SHOW GRANTS 对现有用户有效(授予所有权限)。
我创建了一个新用户和数据库。以下是我使用授权命令看到的内容。
$ mysql -A -umyrootaccount --password=myrootaccountpassword
mysql> grant all privileges on `newtarget_db`.* to 'newtestuser'@'localhost';
ERROR 1044 (42000): Access denied for user 'myrootaccount'@'localhost' to database 'newtarget_db'
mysql> grant all privileges on `newtarget_db`.* to 'existingsourcedbuser'@'localhost';
ERROR 1044 (42000): Access denied for user 'myrootaccount'@'localhost' to database 'newtarget_db'
答案1
授权和特权存储在mysql
数据库中,而不是您克隆的数据库中。
SHOW GRANTS FOR user@host
在源服务器上执行此操作,然后在目标服务器上执行相同操作。您可能会发现其中存在差异。