我使用 mysql dump 创建了一个 sql 转储,但在另一台服务器上恢复时,我在第 397 行收到错误 'ERROR 1227 (42000):访问被拒绝;您需要 super 权限才能执行此操作:
当我检查行号时,我发现问题似乎出在 root@
localhost 部分,因为新服务器没有我正在使用的帐户的根权限。如果我删除了 root@
localhost ,它会继续,但我不确定从以下内容中删除 root@
localhost 是否正确,因为 sql 文件中有很多地方有引用。
什么是正确的方法?
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `Update Feeback status in Order` AFTER INSERT ON `customer_ratings`
FOR EACH ROW BEGIN
最佳答案
您可以检查您的访问权限。
1.- 检查您在新服务器中的访问权限
$mysql -u root -p -hlocalhost
输入密码:
2.-展示您的资助
$mysql>显示“root”@“localhost”的授权;
要解决这个问题,你可以这样做。
1.-停止您的服务。
服务 mysqld 停止
2.- 使用“停止授权表”启动您的服务
mysqld --skip-grant-tables
3.-更新root用户密码
$mysql>更新用户设置密码=PASSWORD('my_password'),其中USER='root';
(如果您愿意,您可以创建您的用户) $mysql>创建由“密码”标识的用户“root”@“localhost”;
4.- 刷新权限
$mysql>刷新权限;
5.- 重新启动服务器
服务mysqld启动
6.- 用于恢复转储文件的托盘。
mysql -u root -hlocalhost -p [数据库名称] <转储文件名.sql
希望这有帮助。
关于permissions - mysql 转储恢复有权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21637100/