Задавайте вопросы, мы ответим
Вы не зашли.
Нужно импортировать данные из csv в таблицу mysql через PHP. Пробовал с помощью LOAD DATA INFILE, но консоль ругается на отсутствие прав на пользователе(ошибка #1045). Нужно реализовать хотя бы загрузку из корня.
Имеется файл test.csv:
u192ij10;87066467263;1;2018-01-10
u171ij10;87063464263;1;2018-01-15
u112oo10;87066487263;1;2018-01-10
u172ij10;87066467263;1;2018-01-16
И таблица articles(id, gnumber, telephone, author, publicationdate)
Неактивен
Прав нету именно на load data infile? просто insert'ами Вы имеет права вставить в базу эти данные?
Неактивен
deadka написал:
Прав нету именно на load data infile? просто insert'ами Вы имеет права вставить в базу эти данные?
Ошибка
SQL запрос:
LOAD DATA INFILE 'test.csv'
INTO TABLE articles
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
Ответ MySQL: Документация
#1045 - Доступ закрыт для пользователя 'ikz12_gagarina'@'%' (был использован пароль: ДА)
Неактивен
Попробуйте insert вместо load data?
Неактивен
deadka написал:
Попробуйте insert вместо load data?
Статический анализ:
Найдено 2 ошибок при анализе.
Unexpected keyword. (near "INFILE" at position 7)
Unrecognized statement type. (near "INFILE" at position 7)
SQL запрос:
INSERT INFILE 'test.csv' INTO TABLE articles FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
Ответ MySQL: Документация
#1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около 'INFILE 'test.csv'
INTO TABLE articles
FIELDS TERMINATED BY ';' LINES TERMINATE' на строке 1
Неактивен
я имел в виду запрос типа
insert into `articles` values('u192ij10',87066467263,1,'2018-01-10');
Неактивен
deadka написал:
я имел в виду запрос типа
insert into `articles` values('u192ij10',87066467263,1,'2018-01-10');
Так мне же как раз нужно, чтобы он с файла импортировал в таблицу. А так простой insert/update/delete отлично работают
Неактивен
По-моему не хватает прав у Вашего пользователя на load data infile. под рутом попробуйте для начала?
Неактивен
deadka написал:
По-моему не хватает прав у Вашего пользователя на load data infile. под рутом попробуйте для начала?
это не локальный, на личном домене
Неактивен
Вы можете под пользователем root подключиться к этой базе?
Неактивен
deadka написал:
Вы можете под пользователем root подключиться к этой базе?
нет
Неактивен
Тогда надо просить админов или кого-то с админовым доступом, чтобы Вашему пользователю дали права на load data infile.
Неактивен
deadka написал:
Тогда надо просить админов или кого-то с админовым доступом, чтобы Вашему пользователю дали права на load data infile.
так я и есть админ
Неактивен
Тогда смотрите в сторону
GRANT FILE ON *.* to "USER";
Неактивен
deadka написал:
Тогда смотрите в сторону
GRANT FILE ON *.* to "USER";
а может есть способы решить эту проблему?
#1045 - Доступ закрыт для пользователя 'ikz12_gagarina'@'%' (был использован пароль: ДА)
Неактивен
Если Вы — админ, тогда у Вас должен быть пользователь, который сможет выполнить GRANT (в данном случае, кажется, что его таки нету).
Также попробуйте LOAD DATA LOCAL INFILE — оно будет требовать права на чтение файлов не на сервере MySQL, а на вебсервере, что, возможно, упростит задачу. Но этот способ может не сработать при условии отключения этой опции со стороны сервера: https://dev.mysql.com/doc/refman/5.7/en … local.html
Неактивен
paulus написал:
Если Вы — админ, тогда у Вас должен быть пользователь, который сможет выполнить GRANT (в данном случае, кажется, что его таки нету).
Также попробуйте LOAD DATA LOCAL INFILE — оно будет требовать права на чтение файлов не на сервере MySQL, а на вебсервере, что, возможно, упростит задачу. Но этот способ может не сработать при условии отключения этой опции со стороны сервера: https://dev.mysql.com/doc/refman/5.7/en … local.html
Я единственный пользователь на сервере, все права разрешены. Я пробовал через local, но он не видит этот файл, хотя и расположен в корне сайта. Каким должен быть путь LOAD DATA LOCAL INFILE? Я например просто написал LOAD DATA LOCAL INFILE 'test.csv'
Отредактированно KiViTaL (24.01.2018 14:00:12)
Неактивен
Ну, путь к файлу нужно все равно указать. __DIR__ в PHP показывает каталог текущего файла.
Неактивен
оке, оставил идею с load data infile. Решил сделать с помощью массива.
Отредактированно KiViTaL (24.01.2018 15:45:49)
Неактивен
Не получается, потому что что?
Также: это форум про MySQL, по PHP правильнее вопросы задавать на webew.ru.
Неактивен