Я все время использую запросы MySQL в PHP, но когда я пытаюсь
LOAD DATA INFILE
Я получаю следующую ошибку
# 1045 - Доступ запрещен для пользователя 'user' @ 'localhost' (с паролем: YES)
Кто-нибудь знает что это значит?
Я все время использую запросы MySQL в PHP, но когда я пытаюсь
LOAD DATA INFILE
Я получаю следующую ошибку
# 1045 - Доступ запрещен для пользователя 'user' @ 'localhost' (с паролем: YES)
Кто-нибудь знает что это значит?
Я тоже столкнулся с этой проблемой. Мне пришлось добавить LOCAL
в свой SQL-запрос.
Например, это дает проблему с разрешением:
LOAD DATA INFILE '{$file}' INTO TABLE {$table}
Добавьте LOCAL
к своему утверждению, и проблема с разрешениями должна исчезнуть. Вот так:
LOAD DATA LOCAL INFILE '{$file}' INTO TABLE {$table}
--local-infile
опцией.У меня была такая проблема. Я поискал и не нашел удовлетворительного ответа. Я резюмирую ниже результаты своих поисков.
Ошибка отказа в доступе может означать, что:
GRANT FILE on *.* to user@'localhost'
); или,источник
Попробуйте использовать эту команду:
Это должно работать. В моем случае это сработало.
источник
ERROR 1148 (42000): The used command is not allowed with this MySQL version
Убедитесь, что вашему пользователю MySQL предоставлена привилегия FILE.
Если вы используете общий веб-хостинг, есть вероятность, что он заблокирован вашим хостинг-провайдером.
источник
Строка из Лиона дала мне очень хороший совет: в Windows нам нужно использовать слеши, а не обратную косую черту. Этот код работает для меня:
источник
Я столкнулся с той же проблемой и решил ее, выполнив следующие действия:
Для этого третьего пункта вы можете обратиться к: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_secure_file_priv
BR,
ОБЪЯВЛЕНИЕ
источник
Это случилось и со мной, и, несмотря на то, что я выполнил все шаги, описанные Ямиром в его посте, я не мог заставить его работать.
Файл находился в /tmp/test.csv с правами доступа 777. У пользователя MySQL были права доступа к файлам, опция LOCAL не была разрешена моей версией MySQL, поэтому я застрял.
Наконец, я смог решить проблему, запустив:
источник
Я нашел простой, если вы используете командную строку
Войти как
mysql -u[username] -p[password] --local-infile
затем
SET GLOBAL local_infile = 1;
выберите вашу базу данных
use [db_name]
и наконец
LOAD DATA LOCAL INFILE 'C:\\Users\\shant\\Downloads\\data-1573708892247.csv' INTO TABLE visitors_final_test FIELDS TERMINATED BY ','LINES TERMINATED BY '\r \n' IGNORE 1 LINES;
источник
SET GLOBAL local_infile = 1;
, похоже, не работает в RDS, но в любом случае без этого--local-infile
трюк сработалЯ обнаружил, что загрузка таблиц MySQL может быть быстрой и безболезненной (я использовал скрипты менеджера моделей python / Django):
1) создать таблицу со всеми столбцами VARCHAR (n) NULL, например:
mysql> CREATE TABLE cw_well2( api VARCHAR(10) NULL,api_county VARCHAR(3) NULL);
2) удалите заголовки (первая строка) из csv, затем загрузите (если вы забудете ЛОКАЛЬНЫЙ, вы получите «# 1045 - Доступ запрещен для пользователя 'user' @ 'localhost' (с паролем: YES)»):
mysql> LOAD DATA LOCAL INFILE "/home/magula6/cogswatch2/well2.csv" INTO TABLE cw_well2 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' -> ; Query OK, 119426 rows affected, 19962 warnings (3.41 sec)
3) изменить столбцы:
mysql> ALTER TABLE cw_well2 CHANGE spud_date spud_date DATE;
mysql> ALTER TABLE cw_well2 CHANGE latitude latitude FLOAT;
вуаля!
источник
Вероятно, это означает, что введенный вами пароль
'user'@'localhost'
неверен.источник