2017-02-01 5 views
1

私はHerokuに配備されたアプリケーションを持っていて、DBマネージャはMySQL JawsDBです。 Navicatを使用してユーザーのデータを挿入したいと考えています。このアプリはちょうど相談のためのものです。 JawsDB DBに接続できますが、新しいデータを挿入しようとするとエラー1142 - INSERT command denied to user 'myJawsDBUser'@'myIPAddress' for table 'myTable'が発生します。 私は、ドキュメントをチェックし、こう述べています。JawsDBのユーザーがINSERT文を作成できるようにします

あなたはJawsDBの共有プランのいずれかにある場合、あなたはあなたの計画を経由して割り当てられたデータベースのサイズに違反している可能性があります。データベースが計画よりも大きくなると、INSERT権限はデータベースが再び準拠するまでデータベースユーザー上で取り消されます。

私のDBのサイズのチェックを行った後、私はへのアクセスを持っていない場合、私はこれを変更することができますどのように、私が思うallows.I最大サイズの計画よりも少ないが、権限に問題がある持っていることがわかり答えの前に、ユーザーテーブル

答えて

3

開示:私はJawsDBでよ:)

ジョーズは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; 

データベースのテーブルのサイズは、ユーザの計画に付与されたサイズを超えた場合は、データベースのサイズは、計画の遵守に戻されるまで、INSERT権限を一時的に無効化されます。これは、古いデータを削除するか、または計画をアップグレードすることによって行うことができます。

関連する問題