43

サーバーの 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 つのサーバーでも正常に機能します。

4

15 に答える 15

48

私は同じ状況に直面しましたが、エラーの理由が間違ったデータベースまたはスキーマ名の使用によるものだったのはおかしいです。

複数の問題があなたが言及したエラーにつながる可能性があることは事実です。

于 2015-08-19T09:38:30.263 に答える
19

MySQLに接続しているMySQLユーザーにSELECT権限を付与する必要があります

ここと同じ質問エラー:テーブル'<table-name>'のユーザー'<userid>'@'<ip-address>'に対してコマンドが拒否されました

リンクの回答を参照してください;)

于 2012-06-08T21:35:35.970 に答える
3

これは、データベースユーザーの特権の問題です。最初にチェックして、ローカルホストのユーザー「marco」に権限を付与します

于 2012-07-03T11:57:15.917 に答える
1

だから私が遭遇した問題はこれでした...権限を付与するために使用したアプリケーションは、Schema.TableNameを間違ったテーブルの単一のDBステートメントに変換したため、付与は実際には間違っていましたが、SHOW GRANTSを実行すると正しく見えましたGRANT SELECT と GRANT TABLE SELECT にあまり注意を払っていない場合は、FOR UserName を使用します。の適切なエスケープを使用して、テーブルの許可選択を手動で修正しますSchemaTable私の問題を解決しました。

無関係かもしれませんが、あるクライアントがこれを間違っていたら、別のクライアントもそうするかもしれないと想像できます.

お役に立てば幸いです。

于 2014-01-23T00:04:42.210 に答える
1

私もこの問題に遭遇しました。私のケースは間違った命名でした。ローカル サーバーからオンライン サーバーに移行していました。私の SQL コマンドには「database.tablename.column」構造がありました。オンライン サーバーのデータベースの名前が異なっていました。たとえば、私のコードは「pet.item.name 」でしたが、「 pet_app.item.name」である必要がありましたが、データベース名を変更すると問題が解決しました。

于 2020-08-11T06:08:51.677 に答える
0

このエラーが発生しました。ローカルホストからストアド プロシージャをコピーしたところ、使用したいサーバーとはデータベース名が異なっていたからです。手順を実行する権限がない理由を理解するのに数時間かかりました...データベース名を確認してください:D誰かがこれが役立つことを願っています...

于 2021-09-04T11:37:55.203 に答える
-3

MySQL クエリ ブラウザで、[ツール] タブ > [MySQL 管理者] > [ユーザー管理] に移動し、ユーザーに権限を付与します。

于 2014-12-07T11:07:57.863 に答える