サーバーの1つで特定のクエリに問題があります。私がテストした他のすべての場所では完全に動作しますが、使用したいサーバーでは動作しません。
次のSQLについてです。
SELECT facturen.id AS fid,
projecten.id AS pid,
titel,
facturen.totaal_bedrag AS totaal,
betaald,
datum
FROM facturen,
projecten
WHERE facturen.project_id = projecten.id
AND projecten.eigenaar = '1'
ORDER BY datum DESC
これは私がそれから得るエラーコードです:
SELECT command denied to user 'marco'@'localhost' for table 'projecten'
表:事実:
CREATE TABLE IF NOT EXISTS `facturen` (
`id` int(11) NOT NULL auto_increment,
`project_id` int(11) NOT NULL,
`datum` int(11) NOT NULL,
`lever_datum` int(11) NOT NULL,
`totaal_bedrag` decimal(9,2) NOT NULL,
`btw` decimal(9,2) NOT NULL,
`bedrijf` varchar(40) NOT NULL,
`contactpersoon` varchar(60) NOT NULL,
`adres` varchar(60) NOT NULL,
`postcode` varchar(7) NOT NULL,
`plaats` varchar(30) NOT NULL,
`betaald` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=201200006 ;
投影:
CREATE TABLE IF NOT EXISTS `projecten` (
`id` int(11) NOT NULL auto_increment,
`titel` varchar(80) NOT NULL,
`eigenaar` int(11) NOT NULL,
`creatie_datum` int(11) NOT NULL,
`eind_datum` int(11) NOT NULL,
`totaal_bedrag` decimal(9,2) NOT NULL,
`btw` decimal(9,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=201200004 ;
奇妙な部分は、「projecten」テーブルと「facturen」テーブルの両方で他のすべてのクエリが完全に機能することです。このクエリは、他の2つのサーバーでも正常に機能します。
MySQLに接続しているMySQLユーザーにSELECTパーミッションを付与する必要があります
ここと同じ質問 エラー:テーブル '<table-name>'のユーザー '<userid>' @ '<ip-address>'に対して拒否されたselectコマンド
リンクの回答を参照してください;)
私は同じ状況に直面しましたが、エラーの理由は間違ったデータベース名またはスキーマ名の使用が原因であったというおかしいです。
複数の問題があなたが言及したエラーにつながる可能性があるのは事実です。
このエラーは、テーブル名のエイリアスが原因で発生した構文エラーに対しても発生します。
たとえば、クエリの下で実行すると、
select a * from a.table1、b.table2 where a.table1 = b.table2
以下のエラーが発生します。
MySQLエラー:#1142。データベースからの応答。テーブル "table1"のユーザー "username @ ip"に対するSELECTコマンドが拒否されました
Solution:エイリアスtablenameの構文を適切に使用する必要があります。上記のインスタンスの構文ソリューション> select * from table1 a、table2 b where a.table1 = b.table2
私もこの問題を抱えていたので、問題は、新しいサーバーに接続して、PHPコードを「my_Database」から「my_database」に変更しようとしていたデータベースに移動したことでした。 。
これは、データベースユーザーの特権の問題です。最初にローカルホストのユーザー「マクロ」にアクセス権を確認して付与します
だから私が遭遇した問題はこれでした...パーミッションを付与するために使用したアプリケーションは、Schema.TableNameを間違ったテーブルの単一のDBステートメントに変換しました。 GRANT SELECTとGRANT TABLE SELECTに細心の注意を払っていない場合は、UserNameを使用します。 Schema
.Table
を適切にエスケープして、テーブルのグラントセレクトを手動で修正すると、問題が解決しました。
無関係かもしれませんが、あるクライアントがこれを間違っているとしたら、別のクライアントもそうかもしれないと想像できます。
お役に立てば幸いです。
無効な定義者でビューをインポートしたときに、サーバーでこのエラーが発生しました。
障害のあるビューを削除すると、エラーが修正されました。
エラーメッセージは、問題のビューについては何も言っていませんでしたが、ビューで使用されていたテーブルの1つについて「不平を言っていました」。