2013-08-06 22 views
7

Veritabanımı MySQL Veritabanı sunucusuna yerleştirdim. Bir kullanıcı 'bedgeaj_root @ localhost' sahibim ve tüm izinleri var. Ama yine de bana şu hatayı veriyor: Hata üzerinde arama yaparken, bazı kullanıcı izni sorunu olduğunu inceledim. Ancak, bu kullanıcıya tüm izinleri verdiğim için bu hatayı neden verdiğini anlamıyorum.SELECT komutu 'user' @ 'localhost' kullanıcısına 'table' tablosu için reddedildi

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} 
: Ben bu sorguyu kullanıyorum

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 

: Burada

bedgeaj_root@localhost permissions screen

benim yığın izleme şöyledir: Burada

benim cPanel kullanıcı izinleri ekranın ekran görüntüsüdür Alias.patient_id tarafından

grubu

Neyi yanlış yapıyorum?

+4

"Bu kullanıcıya tüm izinleri verdiğim gibi." - öyle görünmüyor. –

+0

SELECT izni dahil olmak üzere tüm izinleri bedgea_root @ localhost olarak atadım. Diğer tüm sorgular, belirli bir sorgu dışında düzgün çalışır. CURRENT_USER için –

+0

SHOW GRANTS; Ne alıyorsun? – Mihai

cevap

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

Bunu deneyin. Yukarıdaki linkte Balık tarafından

DÜZENLEME

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

bakınız yorumu.

+0

Denedim, ancak sorun aynı kalıyor. –

+0

Artık yığın izini de sağladım. –

+0

Şimdi, DB'de bulunup bulunmadıklarını sorguda kullanıyorum tabloları iki kez kontrol ettim. Veritabanında varlar. –

1

Benzer bir sorunla karşılaştım. Yerel veritabanım başka bir sunucudan bir dökümden oluşturuldu ve yerel sunucu, dev sunucusundaki bir kullanıcı için tüm doğru izinlere sahip değildi. Yerel veritabanımı sequel pro kullanarak yedeklemeye çalışırken bu hatayı aldım. Daha sonra mysqldump'i denedim ve farklı bir hata yaptım: Hata: 1449: KILIDI MASKELER kullanılırken belirsiz ('joey'@'127.0.0.1') belirtilen kullanıcı mevcut değil. Ben de herşeyi verdim. [email protected] ve düzeltildi.

1

Benzer bir sorunla karşılaştım. Benim durumda
, hata çünkü MySQLLinux yılında duyarlı durumdur çıktı!

this bakınız:

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.

komut GRANT Eğer sorunu çözebilir TABLENAME/Tablename için tablename değiştirmeden önce çalıştırıldı.

İlgili konular