2013-08-06 18 views
7

MySQLデータベースサーバーにデータベースを展開しました。私はユーザー 'bedgeaj_root @ localhost'を持っていて、すべての権限を持っています。しかし、それでも私にエラーが表示されます:テーブル 'テーブル'のユーザー 'user' @ 'localhost'に対してSELECTコマンドが拒否されました

SELECT command denied to user 'bedgeaj_root'@'localhost' for table 'transactions'

ネットで検索しているうちに、ユーザー権限の問題であることがわかりました。しかし、私はこのユーザーにすべての許可を与えたので、なぜこのエラーを出すのか分かりません。ここで

は私のcPanelのユーザー権限画面のスクリーンショットである:ここで

bedgeaj_root@localhost permissions screen

は私のスタックトレースを行く:

Caused by: net.sf.jasperreports.engine.JRException: Error executing SQL statement for : itemizedStatementReport_patientBalance 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:246) 
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1073) 
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:667) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1235) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:859) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:804) 
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:652) 
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59) 
at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205) 
... 1 more 


    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user 'bedgeaj_root'@'localhost' for table 'transactions' 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 
at com.mysql.jdbc.Util.getInstance(Util.java:382) 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3603) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535) 
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989) 
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150) 
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) 
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119) 
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2281) 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:239) 
... 9 more 

私はこのクエリを使用しています:

SELECT alias.patient_id , SUM(alias.balance) AS balance 
    from (
    SELECT v.patient_id,trx.trx_id,trx.trx_status,trx.trx_seq,pb.billing_id,v.visit_id,v.visit_dt,forma t(SUM(tl.net_amount) - ifnull((SELECT SUM(pl.applied_amount+pl.discount_amount) FROM payment_lines pl where pl.trx_line_id = tl.trx_line_id),0.0),2)AS balance 
    FROM ((transactions trx JOIN trx_lines tl ON (trx.trx_id = tl.trx_id))JOIN patient_billing pb ON(pb.billing_id = trx.billing_id))JOIN visits v ON (pb.visit_id = v.visit_id) 
    where trx.trx_seq='4' AND trx.trx_status='PENDING' AND (date_format(v.visit_dt,'%Y/%m/%d')<date_format(DATE_SUB(NOW(), INTERVAL 1 day),'%Y/%m/%d')) 
    group by tl.trx_id) alias 
    where alias.patient_id = $P{patient_id} 

グループby alias.patient_id]

私は間違っていますか?

+4

"このユーザーにすべてのアクセス許可を与えているためです。 - そのようには見えません。 –

+0

私はbedgea_root @ localhostというユーザーにSELECT権限を含むすべての権限を割り当てました。他のすべてのクエリは、1つの特定のクエリを除いて正常に動作します –

+0

CURRENT_USERのための助成金を表示;何を手に入れますか? – Mihai

答えて

4
grant all privileges on bedgeaj_medmax.transactions to 'bedgeaj_root'@'%' identified by 'password'; 

これを試してみてください。

EDIT

Error: select command denied to user '<userid>'@'<ip-address>' for table '<table-name>'

上記のリンクで魚座によってコメントを参照してください。

+0

私はそれを試しましたが、問題は変わりません。 –

+0

私は今もスタックトレースを提供しています。 –

+0

DB内に存在するかどうかをクエリで使用しているテーブルをダブルチェックしました。それらはデータベースに存在します。 –

1

私も同様の問題がありました。私のローカルデータベースは、別のサーバーからのダンプから作成され、ローカルサーバーは、devサーバー上にあったユーザーのためのすべての適切なアクセス許可を持っていませんでした。私はsequel proを使用してローカルデータベースをバックアップしようとするとこのエラーが発生します。 mysqldumpを試してみましたが、別のエラーが発生しました。エラーが発生しました:1449:LOCK TABLESを使用している場合、定義者( 'joey'@'127.0.0.1')として指定されたユーザーは存在しません。だから私はすべてを認めた。 [email protected]に送信し、それを修正しました。

1

私にも同様の問題がありました。 MySQLの場合のLinuxで敏感ですので!私の状況では
、エラーが登場しました

thisを参照してください:

In MySQL, databases correspond to directories within the data directory. Each table within a database corresponds to at least one file within the database directory (and possibly more, depending on the storage engine). Triggers also correspond to files. Consequently, the case sensitivity of the underlying operating system plays a part in the case sensitivity of database, table, and trigger names. This means such names are not case sensitive in Windows, but are case sensitive in most varieties of Unix.

GRANTコマンドが以前に実行された場合は、TABLENAME/Tablenametablenameを変更して問題を解決することができます。

関連する問題