問題タブ [mysql-error-1142]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - mysql でクロスデータベース結合を有効にするにはどうすればよいですか?
次のようなクエリを使用して、本番データベースからサンドボックスにデータを移植しようとしています。
このクロスデータベース結合を試みると、次のエラーが発生します。
エラー 1142 (42000): テーブル 'SomeTable' のユーザー 'myusername'@'server.domain.tdl' に対する SELECT コマンドが拒否されました
問題のユーザーは、両方のデータベースの問題のテーブルへのアクセス許可を持っています。UNIX mysql クライアントと Windows MySQL Query Browser アプリケーションの両方でこれを試しましたが、結果は同じでした。
私は何が欠けていますか?
php - php複数データベースの問題
以下のように2つのデータベース接続を設定しました
そしてそれはうまくいきます
だから私はこのようなページでいくつかのクエリを行います:
そしてそれはうまくいきます、その後私はこのような2番目のクエリを行います:
繰り返しになりますが、すべて問題ありませんが、それでは...
このエラーが発生します:
****
テーブル'eventos'のユーザー'wordpress'@'localhost'に対してSELECTコマンドが拒否されました
****
mysql - MySQLの一時テーブルに権限を割り当てるためのより良い方法はありますか?
ユーザーは、データベースレベルでSELECTが付与され、アクセスが必要な特定のテーブルでINSERT / UPDATE / DELETEが付与された、かなり低レベルのユーザーとして本番データベースにログインします。
また、一時テーブルを作成するためのアクセス許可もあります(より複雑なクエリの一部に必要です)。問題は、一時テーブルを作成することはできても、INSERTにアクセスできないことです。
私たちが見つけた回避策は、同じ名前の「実際の」(永続的な?)テーブルを作成し(ただし、フィールドが1つしかない)、そこに挿入するためのアクセスを許可することです。次に、一時テーブルが同じ名前で作成されると、システムは永続テーブルではなく、それを使用します。
(別のセッションで、rootとして)テーブルへのアクセスを許可しようとすると、次のことはできません。
だから私の質問は、基本的に、同じ名前の「永続的な」テーブルがぶら下がることなく、一時テーブルにINSERT / UPDATE /DELETEを許可できるかどうかです。
mysql - mySQL への遅いデータ挿入の増加
バックグラウンド:
約 60 GB の大きなフラット ファイルがあり、データベースに挿入しています。挿入中にパフォーマンスが徐々に低下しています。
- 1 億 7,400 万のレコードがあり、さらに 5,000 万のレコードが挿入されると予想されます
- エンティティ名の最初の 2 文字 (entity_aa、entity_ab ... entity_zz など) に基づいて、メイン テーブルを 1000 以上のテーブルに分割しました。
- 各挿入中に、3 つのクエリが実行されます (a) 別のテーブルへの範囲ベースの検索、(b) レコードが既に挿入されているかどうかの確認、(c) 詳細 (entity_briefs) テーブルへの挿入
- 頻繁な検索クエリを処理するために entity_briefs を追加しましたが、データベースに挿入すると、ALTER TABLE エンティティ (または entity_briefs) DISABLE (または ENABLE) KEY に関係なく、徐々に遅くなることに気付きました。
- マシンには 4 つの CPU、ギグのディスク容量、2GB の RAM があります。オペレーティング システムは Linux CentOS (5.4) 32 ビットです。
- 4 つの CPU がすべて使用されているわけではないことがわかりました
- 一度に 4 つのインポート スクリプトを実行しましたが、全体的なパフォーマンスは満足のいくものではありません
問題のあるテーブル
mysqltuner.pl 出力:
要件: 挿入を高速化するには、どの最適化戦略を使用できますか?
php - この MySQL ページのセキュリティ上の欠陥を見つけるのに役立ちますか?
MySQL ページのセキュリティ上の欠陥を見つけようとしています。これは、SQL について学習するクラスの課題です。テキストボックスを介して、クエリを送信し、正しいデータセットが返されるかどうかを確認するためのデータベースへのアクセスが与えられます。彼らに何か悪意のあることができるかどうかを知りたいのです。
これはSHOW GRANTS
クエリの結果です:
誰かがこれらのGRANT
ステートメントの意味を説明できますか? *.*
ととは何GRANT USAGE
ですか? このサイトを壊すには、他に何ができますか?
サイト自体はPHPで書かれています。
The Rook への応答として、実行すると:
私は戻ってきます:
思ったとおり、ユーザーにはこれを行うために必要な権限がないようです。それとも私は何かを誤解していますか?
php - INFORMATION_SCHEMAがアクセスを拒否したときにテーブルの列をクエリするにはどうすればよいですか?
私がやろうとしているのは、テーブルのすべての列を取得することです(テーブルは空にすることができます)
私が以前にしたことの例:
ローカルホストでは完全に機能しますが、私のプロバイダーでは次のようになります。
INFORMATION_SCHEMAを使用しない代替手段はありますか?
mysql - MySQL テーブルの内容を別の (ローカル) データベースのテーブルにコピーする
私のサイトには 2 つの MySQL データベースがあります。1 つは本番環境用で、もう 1 つはテスト/開発環境用です。どちらも同一のスキーマを持っています (もちろん、変更しようとしているものをテストしている場合を除きます)。少数のテーブルは国際化を目的としています。
TransLanguage - 英語以外の言語
TransModule - モジュール (PHP スクリプトによって個別にロードできる、翻訳用のフレーズのバンドル)
TransPhrase - 潜在的な翻訳用の英語の個々のフレーズ
TranslatedPhrase - ボランティアによって提出されたフレーズの翻訳
ChosenTranslatedPhrase - 選別されたフレーズの翻訳。
翻訳を行う有志は、常連ユーザーなので、全員が制作現場で働いています。
これらの 4 つのテーブル (TransLanguage、TransModule、TransPhrase、および ChosenTranslatedPhrase) の内容を本番データベースからテスト データベースに同期するために使用できるストアド プロシージャを作成して、テスト環境を最新の状態に保ちたいと考えました。テスト中に「不明なフレーズ」エラーが邪魔になるのを防ぎます。私の最初の試みは、test データベースに次のプロシージャを作成することでした。
これを実行しようとすると、次のエラー メッセージが表示されます"SELECT command denied to user 'username'@'localhost' for table 'TransLanguage'"
。また、逆に機能する手順 (つまり、テスト データベースではなく、運用データベースのデータ ディクショナリの一部として存在する手順) を作成しようとしました。そのようにすると、SELECT ではなく DELETE コマンドが拒否されたことを除いて、同じメッセージが表示されます。
ユーザーが両方のデータベースで INSERT、DELETE、SELECT、UPDATE、および CREATE ROUTINE 権限を持っていることを確認しました。ただし、MySQL は、このユーザーが両方のデータベースで同時に権限を行使できるようにすることに消極的であるようです。これを回避する方法はありますか?
mysql - JOINUSINGを使用したクエリでエラーが発生しました
この単純なクエリを考えてみましょう。
このエラーが発生します:
1142:テーブル'table1'の列'pid'のユーザー'root'@'localhost'に対してSELECTコマンドが拒否されました
に置き換えるUSING
とON
(そしてこの正しい構文...)、エラーは消えます。
何が問題ですか?
mysql - database.tableの削除をusername@'%'に付与します。
データベース内の1つのテーブルをユーザーが完全に制御できるようにしました。ただし、レコードを削除できないようです。
私は特権ユーザーとして試しました:
しかし、stilの削除は機能しません
何か案は?
乾杯、
ネイサン。
mysql - エラー: select コマンドがユーザーに拒否されました ''@''テーブル用''
私のウェブサイトでは、MySQL データベースを使用しています。私はすべてのデータベース関連の操作を行う Web サービスを使用しています。
そのWebサービスのメソッドの1つで、次のエラーが発生します。
テーブル '<table-name>' のユーザー '<userid>'@'<ip-address>' に対する select コマンドが拒否されました
何が間違っている可能性がありますか?
以下は、そのエラーが発生するコードです。デバッグを試みたところ、次の行で失敗することがわかりました
MySqlDataReader result1 = command1.ExecuteReader();
これが私のコードです: