Table of Contents

Masalah

Saat ingin melakukan perintah LOAD DATA INFILE, muncul pesan kesalahan “Access denied”. Apa yang salah, apa yang harus saya lakukan?

Penjelasan/solusi

LOAD DATA INFILE akan menginstruksikan mysqld untuk mencari file yang berada di sisi server (yaitu di mesin tempat mysqld berada, yang bisa saja sama atau berbeda dari mesin tempat kita menjalankan client mysql, jika koneksinya remote). Karena di server shared hosting, mysqld itu dipakai bersama-sama, maka perintah ini didisable dan hanya diperbolehkan bagi administrator. Karena, LOAD DATA INFILE dapat dipakai untuk membaca semua file yang dapat dibaca oleh user mysqld, termasuk direktori database milik siapapun. Ini mengganggu privasi user hosting.

Sebagai penggantinya, gunakanlah perintah LOAD DATA LOCAL INFILE. Perintah ini akan menginstrusikan client mysql untuk mencari file yang berada di sisi klien (yaitu tempat Anda melancarkan perintah ini). Jika Anda menggunakan phpMyAdmin di server, Anda bisa menaruh dulu data Anda di /tmp misalnya, agar phpMyAdmin dapat membaca file ini. Jika Anda menggunakan klien console mysql lewat SSH, Anda dapat menaruh file yang ingin diload di direktori home Anda.