Gol*_*arq 4 mysql database heroku
我在Heroku中部署了一个应用程序,数据库管理器是MySQL JawsDB.我想使用Navicat为我的用户插入数据.该应用程序仅供咨询.我可以连接到我的JawsDB DB但是,当我尝试插入新数据时,我收到错误1142 - INSERT command denied to user 'myJawsDBUser'@'myIPAddress' for table 'myTable'.我检查了文档并说:
如果您使用的是JawsDB的共享计划之一,则可能违反了通过您的计划分配的数据库大小.当数据库大于计划允许的数据库时,将对数据库用户撤消INSERT权限,直到数据库恢复到合规状态.
在检查了我的数据库大小之后,我发现我的规模允许的最小数量不足.我认为这是一个特权问题,如果我没有访问Users表,我怎么能改变这个
小智 7
回答之前的披露:我和JawsDB :)
Jaws根据information_schema通过将该数据库中每个表的data_length和index_length值相加来计算已用空间.
像下面这样的查询用于执行此操作.
select
s.schema_name
,sp.grantee user
,cast(round(sum(coalesce(t.data_length + t.index_length, 0)) / 1024 / 1024, 3) as char) db_size_mb
,sp.has_insert
from
information_schema.schemata s
inner join
information_schema.tables t on s.schema_name = t.table_schema
inner join (
select
spi.grantee
,spi.table_schema
,max(
case
when spi.privilege_type = 'INSERT' then 1
else 0
end
) has_insert
from
information_schema.schema_privileges spi
group by
spi.grantee
,spi.table_schema
) sp on s.schema_name = sp.table_schema
group by
s.schema_name;
Run Code Online (Sandbox Code Playgroud)
如果数据库表的大小超过授予用户计划的大小,则会暂时撤消INSERT权限,直到数据库大小恢复为符合计划.这可以通过删除旧数据或升级其计划来完成.
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |