Thursday, October 16, 2014

MySQL இல் LOAD DATA INFILE பிழைக்கான தீர்வு

ஒரு Table னுடைய column க்கு தேவையான தகவல்கள் ஒரு Tab இடைவெளியிலும், ஒரு Row க்கு தேவையான தகவல்கள் ஒரு புதிய line னாலும் ஒழுங்குபடுத்தப்பட்டு ஒரு கோப்பில் சேமிக்கப்பட்டிருந்தால், அந்த தகவல்களை நாம் நேரடியாக ஒரு Table க்குள் செலுத்திக்கொள்ளலாம்.


இதற்கு பயன்படும் கட்டளைதான் LOAD DATA INFILE

LOAD DATA INFILE இன் Syntax பின்வருமாறு இருக்கும்

LOAD DATA INFILE '/full/path/of/file/name' INTO TABLE table name;

இந்த Query யை நான் இயக்கிய போது எனக்கு கீழ்காணும் பிழைச் செய்தி கிடைத்தது.


ஏதாவது எழுத்து பிழை இருக்கலாம் என நினைத்துக்கொண்டு ஒன்றிற்கு இரண்டு முறை கட்டளை வரியை சரிபார்த்து கொண்டேன் எல்லாம் சரியாகத்தான் இருந்தது. அடுத்ததாக கோப்பிற்கு chmod 777 data.txt என கொடுத்து முழு அனுமதியையும் அளித்துப்பார்த்தேன் அப்படியும் வேலை செய்யவில்லை. அப்படியென்றால் பிழை வேறு எங்கோ இருக்கிறது என நினைத்து இணையத்தில் தேடினேன். இங்கு தீர்வு கிடைத்தது.

பணிபுரிந்து கொண்டிருந்த MySQL Terminal ஐ மூடிவிட்டு மறுபடியும் நுழையும் போது கீழ்காணும் கட்டளைகளை அமைத்து உள்நுழைந்தேன்.



myql -u root -p --local-infile=1

அதன்பின் LOAD DAT INFILE என்பதை LOAD DATA LOCAL INFILE என கட்டளையை மாற்றி அமைத்த போது கட்டளை வரி மிகவும் சரியாக வேலை செய்தது.