我有一个PHP脚本,调用MySQL的LOAD DATA INFILE
来从CSV文件加载数据。但是,在生产服务器上,我最终得到以下错误:
用户拒绝访问...(使用密码:是)
作为一种快速解决方法,我将命令更改为有效的LOAD DATA LOCAL INFILE
。但是,使用此消息在客户端的服务器上执行相同的命令:
此MySQL版本不允许使用used命令
我认为这与服务器变量有关:local_infile = off
如here所述。
请建议不涉及更改服务器设置的解决方法。请注意,安装在同一服务器上的phpMyAdmin实用程序似乎接受CSV文件,但我不确定它是否使用LOAD DATA (LOCAL) INFILE
。
答案 0 :(得分:42)
和root一样陷入同样的问题,然后把我扔了一会儿
可能是使用compile
设置的服务器设置的问题使用相同的用户测试登录到控制台并尝试加载数据命令
如果您收到相同的错误,请尝试关闭控制台并运行
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
答案 1 :(得分:2)
我正在寻找解决方案大约1个小时,最后我发现我需要像这样连接到数据库 $胸径=的mysql_connect($服务器,$ DBUSER,$ DBPASS,假,128);
在flags参数中传递128是关键。
请参阅http://www.php.net/manual/en/mysql.constants.php#mysql.client-flags以了解有关旗帜的更多信息。
答案 2 :(得分: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)