gpt4 book ai didi

MySQL无法导入创建过程的SQL

转载 作者:行者123 更新时间:2023-11-29 10:23:45 25 4
gpt4 key购买 nike

我正在使用托管 Web 服务帐户,该帐户使用 cpanel 作为其管理系统。登录 phpmyadmin 后,我尝试导入包含表和一些过程的 SQL 文件。

CREATE DEFINER=`root`@`localhost` PROCEDURE `getClientDashboardStatsMap` (IN `in_userID` INT)  BEGIN

SELECT
rl.city,
rl.state,
rl.zip,
rl.longitude,
rl.latitude,
rl.timestamp,
count(rl.ID) as total
FROM
crowd.redemption_log as rl
JOIN
reward as r
ON
rl.rewardID = r.rewardID
WHERE
r.userID = 1
AND
rl.timestamp BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
GROUP BY
rl.city, rl.state, rl.zip
ORDER BY
total DESC;

END$$

当我尝试运行此程序时,出现需要 super 用户权限才能执行此操作的错误。经过一些搜索,人们建议删除定义行,如下所示:

创建过程 getClientDashboardStatsMap (IN in_userID INT) 开始

虽然这允许我完成导入,但我遇到了另一个问题。这些过程正在获取 cpaneluser@localhost 的默认定义者。但是,设置的数据库用户与此用户不同,因此该过程没有诸如选择、更新、删除之类的权限。数据库用户是 cpaneluser_dbusername,这是此类托管网站的典型用户,因此您可以将数据库与帐户关联起来。

我怎样才能让这个程序在正确的用户下运行?我在 PHPMYADMIN 中没有看到任何用于以 super 用户身份运行这些权限的设置。

最佳答案

有两种方法可以解决这个问题:

  1. 使用数据库用户cpaneluser_dbusername登录phpmyadmin。我不熟悉 phpmyadmin 和 cpanel,所以我不确定它们是否为您提供更改用户的选项。你应该自己检查一下。我正在使用 MySQL Workbench 和 MySQL Administrator,它们都为我提供了这个选项。

  2. cpaneluser@localhost 授予权限。如:

    将 db_name.table_name 上的所有内容授予“cpaneluser@localhost”;

最好明确授予每个权限,例如:GRANT SELECT,INSERT,UPDATE,DELETE ON ...。检查GRANT Syntax .

关于MySQL无法导入创建过程的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48728194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com