Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Запихать текстовый файл из под shell в MySQL / 25 сообщений из 52, страница 1 из 3
07.05.2005, 19:42:21
    #33054288
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Сабж. Написал скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
sql_preffix="${mysql} --host=${IP_MySQL_servera} \
--user=${username} --password=${user_passw} --database=${database}"
# Stiraem dannie predidus4ego eksperimenta
${sql_preffix} --execute="DELETE from site_table"
i="0"
cd /tmp/tmp_dir/
ls | {
while read stroka
do
read text < ${stroka}
${sql_preffix} --execute="INSERT into site_table (id, text) \
VALUES ('$i', '${text}')"
i=`expr $i +  1 `
done
}
Он пихает только первые строки... А надо целиком... Сижу думаю. Уже час - а идей нет.... :(
...
Рейтинг: 0 / 0
07.05.2005, 20:12:42
    #33054310
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Итак, это обошли:)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sql_preffix="${mysql} --host=${IP_MySQL_servera} \
--user=${username} --password=${user_passw} --database=${database}"
# Stiraem dannie predidus4ego eksperimenta
${sql_preffix} --execute="DELETE from site_table"
i="1"
cd /tmp/tmp_dir/
ls | {
while read stroka
do
text=`cat ${stroka}`
${sql_preffix} --execute="INSERT into site_table (id, text) \
VALUES ('$i', '${text}')"
i=`expr $i +  1 `
done
}

Всё прекрасно и великолепно.... Но. 50кб вставляется а вот 200 уже нет. Жалуется:
Код: plaintext
1.
/usr/local/bin/mysql: argument list too long

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
07.05.2005, 20:45:21
    #33054326
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Может с конфигами МуСКЛа чё не то?
Другие средства запихивают нормально?
...
Рейтинг: 0 / 0
07.05.2005, 21:21:02
    #33054345
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
phpMyAdmin пхает великолепно. Но извините - ждать по полчаса на моменте вставки в форму этого самого phpMyAdmin.... Несерьёзно.
Вообще, действительно странно - в поля таблицы можно загнать по чёрт знает сколько мегабайт а штатное средство для этого ругается....
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
07.05.2005, 21:34:43
    #33054363
sanek842
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
посм. лучше про команду mysql
load data infile 'имяфайла' into table site_table (text);
...
Рейтинг: 0 / 0
07.05.2005, 21:39:41
    #33054367
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
lissyaraphpMyAdmin пхает великолепно. Но извините - ждать по полчаса на моменте вставки в форму этого самого phpMyAdmin.... Несерьёзно.
Вообще, действительно странно - в поля таблицы можно загнать по чёрт знает сколько мегабайт а штатное средство для этого ругается....
Posted via ActualForum NNTP Server 1.1
Shell, насколько я знаю, средство не стандартное. Стандартное, имхо, утилита mysql.
Она должна всегда работать. Абсолютно. Ну если mysqld работает нормально.
Если админ запихнул, значит с логами всё чики-пуки. Это шеловские лаги скорей всего.
...
Рейтинг: 0 / 0
07.05.2005, 21:50:38
    #33054372
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
А из под shell я чем пихаю? :) Тем самым mysql...
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
07.05.2005, 21:56:51
    #33054376
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
2 sanek842
Юмор оценил :)
Ещё идеи есть?
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
07.05.2005, 21:58:42
    #33054377
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
2 снова sanek842
Может это и не юмор.... В-общем оно запихалось. Каждая строка отдельной записью.... :(
Код: plaintext
1.
2.
mysql --user=root --password=123456789 --database=test \
 --execute="load data infile '/tmp/tmp_dir/2.txt' into table site_table(text)"

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
07.05.2005, 22:02:50
    #33054379
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Вообще-то там разделитель можно указать. Но ты наверняка это знаешь.
Шел твой лагает. Жопой чую.
...
Рейтинг: 0 / 0
07.05.2005, 22:36:40
    #33054404
sanek842
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
lissyara2 sanek842
Юмор оценил :)
Ещё идеи есть?
Posted via ActualForum NNTP Server 1.1
если нужно целиком файл , есть еще вроде ф-ия LOAD_FILE('имяфайла')
встав это в гугл или в форум по mysql, будет пример
...
Рейтинг: 0 / 0
08.05.2005, 00:13:40
    #33054435
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
2 sanek842
Это если картинку например пхать в БД...
2 Sarin
с разделителями не хочет на синтаксис материться - причём синтаксис содран из примера на http://dev.mysql.com/doc/mysql/en/load-data.html
Код: plaintext
1.
2.
3.
/home/admin/>mysql --user=root --password=16913169 --database=test_books \
 --execute="load data infile '/tmp/tmp_dir/books/2.txt' into table site_table(text) \
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'"
Ругается:
Код: plaintext
1.
2.
3.
ERROR  1064  at line  1 : You have an error in your SQL syntax.  Check the manual that 
corresponds to your MySQL server version for the right syntax to use near 'FIELDS 
TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'' at li

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
08.05.2005, 10:59:48
    #33054536
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Я точно не помню. Я МуСКЛ давно юзал. Но там разделитель есть вроде и по полям и по записи. Попробуй не \t, а ; например.
...
Рейтинг: 0 / 0
08.05.2005, 11:15:09
    #33054542
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Да я по разному пробовал. Он на саму попытку разделителя ругается. Хотя, как писал всято с сайта MySQL
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
08.05.2005, 14:17:52
    #33054618
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Попробуй выкинуть таблицу из мускла в файл текстовый. А потом из этого файла назад в мускл. Что ещё посоветовать? Ну попробуй дамп сам написать.
...
Рейтинг: 0 / 0
08.05.2005, 14:23:43
    #33054622
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
lissyara
Код: plaintext
1.
2.
3.
/home/admin/>mysql --user=root --password=16913169 --database=test_books \
 --execute="load data infile '/tmp/tmp_dir/books/2.txt' into table site_table(text) \
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'"

Слушай, извини за глупый вопрос, но ты пробовал без этой байды: --execute=, а дождаться приглашение нормального и где в этой замечательной команде ты выбрал базу данных?

Ну типа так:
>use MyBase;
Database chenged
>load data infile '/tmp/tmp_dir/books/2.txt' into table site_table(text) FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\';
Querry Ok.
...
Рейтинг: 0 / 0
08.05.2005, 14:25:23
    #33054624
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Да проблема как раз с количеством и размером - файлов полторы сотни от 20 кб до 5 mb.... Очень тяжко редактировать все, особенно большие - машина слабая, тормозит....
С дампом и сам думал - видимо к нему и придётся вернуться....
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
08.05.2005, 14:28:26
    #33054626
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
lissyaraДа проблема как раз с количеством и размером - файлов полторы сотни от 20 кб до 5 mb.... Очень тяжко редактировать все, особенно большие - машина слабая, тормозит....
С дампом и сам думал - видимо к нему и придётся вернуться....
Posted via ActualForum NNTP Server 1.1
Скрипт на Перле напиши. Запусти и пойди чай пить. Или кофе
...
Рейтинг: 0 / 0
08.05.2005, 14:28:54
    #33054627
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Да нафига мне приглашение-то нормальное? Я ж автоматизировать хочу. Коли уж приглашение - так и через phpMyAdmin накрайняк вставлю....
Мне как раз без приглашений - на потоке надо. А тут кажись без --execute= никак....
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
08.05.2005, 14:32:19
    #33054629
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Я ещё под виндой когда жил у меня подобные задачи вставали. Я их на PHP решал. Попробуй. Уж лучше чем PHP с МуСКЛом мало кто дружит.
...
Рейтинг: 0 / 0
08.05.2005, 14:32:32
    #33054630
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Я перл не знаю.
Потому на shell и пишу. Мне как-то shell ближе. Мутный он какой-то (perl)....

P.S. В плане - скрипт? Чтоб из текстовых файлов дампы делал и в БД их пихал?
Идея тоже.... Только надо обмозговать как вначало файла что-то дописывать.... Да и переводы строки надо б заменить на \n....
Короче - пока есть как поразвлекаться :)
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
08.05.2005, 14:33:24
    #33054631
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
А вот php я тока начал осваивать... Но - тоже идея.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
08.05.2005, 14:41:13
    #33054639
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Слушай, я Перл сам уже не помню (смеятся будешь, но я его под виндой юзал) но там замена \t на чтонибудь делается настолько просто, нfсколько представить себе низя.
Алгоритм прост:

Открываем файл для чтения
Открываем файл для записи
Пишем в файл для записи необходимый заголовок.
Читаем файл для чтения в массив
пока массив {
Разделяем строку(элемент массива) по символам \t на массив другой.
Пишем полученный массив в файл соответствующим образом переделав
}
Закрываем первый файл
Закрываем фторой файл.

Я просто команд не помню. Но каждая строка в моём алгоритме - соответствующая стандартная функция Перла.
...
Рейтинг: 0 / 0
08.05.2005, 14:43:55
    #33054642
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
lissyaraА вот php я тока начал осваивать... Но - тоже идея.
Posted via ActualForum NNTP Server 1.1
PHP пожалуй даже лучше. Не надо будет дамп скармливать. Хотя скриптик сложнее будет.

ЗЫ: Перл тоже с МуСКЛом дружит. Но это ОЧЕНЬ геморойно. Я из за мускла с Перла на ПХП в своё время пересел.
...
Рейтинг: 0 / 0
08.05.2005, 14:46:35
    #33054647
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запихать текстовый файл из под shell в MySQL
Слушай, а кинь ка структуру таблици и образец записи в текстовом файле. В общем задучу поставь. Может скриптом помогу.

Если не тайна конечно.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Запихать текстовый файл из под shell в MySQL / 25 сообщений из 52, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]