10

LOAD DATA INFILEMySQL を呼び出して CSV ファイルからデータをロードする PHP スクリプトがあります。ただし、本番サーバーでは、次のエラーが発生しました。

ユーザー ... のアクセスが拒否されました (パスワードを使用: はい)

簡単な回避策として、動作するコマンドを変更しLOAD DATA LOCAL INFILEました。ただし、クライアントのサーバーで同じコマンドが失敗し、次のメッセージが表示されました。

使用されたコマンドは、この MySQL バージョンでは許可されていません

これはサーバー変数と関係があると思います:ここでlocal_infile = off説明されているように.

サーバー設定の変更を伴わない回避策を提案してください。同じサーバーにインストールされた phpMyAdmin ユーティリティは、CSV ファイルを受け入れるように見えることに注意してくださいLOAD DATA (LOCAL) INFILE

4

3 に答える 3

42

ルートと同じ問題に遭遇し、一瞬私を投げました

コンパイルで設定されたサーバー設定に問題がある可能性があります

同じユーザーでコンソールへのログインをテストし、データのロード コマンドを試す

同じエラーが発生した場合は、コンソールを閉じて実行してみてください

mysql -u USER -p --local-infile=1 DATABASE

load data コマンドをもう一度実行してみてください

動作する場合は、コマンド ライン オプションで mysqld を再起動するか、構成オプションで再インストールする必要があります。

参照(参照は5.0用ですが、5.5で機能しました):

http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html

http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#option_mysql_local-infile

于 2012-08-31T06:23:08.623 に答える
0

この権限リストを見てください。個別に追加できます、IE. 挿入はできるが更新はできない、削除はできるが選択はできない、など...

ALL [PRIVILEGES]    Grant all privileges at specified access level except GRANT OPTION
ALTER   Enable use of ALTER TABLE
ALTER ROUTINE   Enable stored routines to be altered or dropped
CREATE  Enable database and table creation
CREATE ROUTINE  Enable stored routine creation
CREATE TEMPORARY TABLES     Enable use of CREATE TEMPORARY TABLE
CREATE USER     Enable use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES
CREATE VIEW     Enable views to be created or altered
DELETE  Enable use of DELETE
DROP    Enable databases, tables, and views to be dropped
EVENT   Enable use of events for the Event Scheduler
EXECUTE     Enable the user to execute stored routines
FILE    Enable the user to cause the server to read or write files
GRANT OPTION    Enable privileges to be granted to or removed from other accounts
INDEX   Enable indexes to be created or dropped
INSERT  Enable use of INSERT
LOCK TABLES     Enable use of LOCK TABLES on tables for which you have the SELECT privilege
PROCESS     Enable the user to see all processes with SHOW PROCESSLIST
REFERENCES  Not implemented
RELOAD  Enable use of FLUSH operations
REPLICATION CLIENT  Enable the user to ask where master or slave servers are
REPLICATION SLAVE   Enable replication slaves to read binary log events from the master
SELECT  Enable use of SELECT
SHOW DATABASES  Enable SHOW DATABASES to show all databases
SHOW VIEW   Enable use of SHOW CREATE VIEW
SHUTDOWN    Enable use of mysqladmin shutdown
SUPER   Enable use of other administrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debug command
TRIGGER     Enable trigger operations
UPDATE  Enable use of UPDATE
USAGE   Synonym for “no privileges”

選択、削除、挿入、更新の権限はあると思いますが、他のことを行う権限はありません。

次のコマンドを使用します。

SHOW GRANTS

私の場合、彼はあなたができることを教えてくれます。

jcho360> show grants;
+-------------------------------------------------------+
| Grants for jbolivar@localhost                         |
+-------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'jbolivar'@'localhost' |
+-------------------------------------------------------+
1 row in set (0.00 sec)
于 2012-05-24T13:27:09.523 に答える