Внезапно MYSQL "Неверно сформированный пакет" в LOAD DATA LOCAL INFILE после двух лет работы - PullRequest
0 голосов
/ 05 апреля 2019

Это была ночная работа, работавшая два года. PHP-файл импортирует текстовый файл в базу данных MYSQL. Неожиданно сегодня получаю Malformed Packet при импорте файла TXT. Я заметил, что сервер работает только 23 часа, поэтому я думаю, что GoDaddy мог бы что-то обновить.

MYSQL Ver = 5.6.43-cll-lve

local_infile = ON

Без «local» я получаю сообщение об ошибке «Доступ запрещен для пользователя», я пытался предоставить FILE, но у меня возникли проблемы с получением доступа к CLI mysql через SSH (он никогда не был нужен раньше), а PHP MY Admin не имеет прав доступа.

Я провел целый день на этом и не могу понять, что делать. Я также попытался установить для файла значение 777.

Я попытался удалить усеченную часть и просто выполнить импорт, урезав файл импорта до 3 строк, используя старые файлы импорта, которые работали раньше - не могу сделать головы или хвосты.

require('config_dev.php');
$path = '/home/pro/public_html/upload/IDUpload_dev.txt';
$mysqli = new mysqli($hostname,$username, $password, $dbname);

if ($mysqli->connect_error) {
  die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}

$sql1 = "TRUNCATE TABLE Accounts;";

if (!$mysqli->query($sql1)) {
    echo "\nQuery execute failed: ERRNO: (" . $mysqli->errno . ") " . $mysqli->error;
} else {
    echo ("Truncated<br>");
}

$sql2 = "LOAD DATA LOCAL INFILE '".$path."' INTO TABLE Accounts
        FIELDS TERMINATED BY ','
        LINES TERMINATED BY '\n'
        IGNORE 1 LINES
        (acct,type,zip)";

if (!$mysqli->query($sql2)) {
    echo "\nQuery execute failed: ERRNO: (" . $mysqli->errno . ") " . $mysqli->error;
} else {
    echo ("Imported.");
}

mysqli_close($mysqli);

1 Ответ

4 голосов
/ 05 апреля 2019

Для использования LOAD DATA INFILE LOCAL MYSQLI_OPT_LOCAL_INFILE необходимо включить перед подключением.

Вы должны SHOW GLOBAL VARIABLES LIKE 'local_infile' проверить, включено ли это на сервере, который также требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...