Постоянно вставляйте данные в таблицу MySQL из канала FIFO в Linux

Я хочу вставить данные из канала fifo в таблицу mysql, сейчас для меня это возможно до тех пор, пока процесс fifo pipe не будет завершен,

команда:

$>mkfifo /path/to/pipe
$>sudo chmod 666 /path/to/pipe
$>find \ -sl > /path/to/pipe & msql db1 -e"LOAD DATA INFILE '/path/to/pipe' INTO TABLE T1 " &

данные в канал fifo вставляются до тех пор, пока процесс mysql не будет остановлен процессом kill.

Возможна ли вставка данных без прерывания процесса передачи данных fifo в?

Спасибо!!

2 ответа

Чтобы уточнить комментарий @JulienPalard выше, вы сможете достичь своей цели с помощью следующих команд.

(Я использую два разных процесса оболочки, тогда как он использует один. Для моего описания, попробуйте сделать обе оболочки видимыми одновременно, чтобы вы могли прочитать вывод в одной оболочке и записать ввод в другой. Если вы знаете, что делаете, вы может поместить процесс mysql в фоновый режим и, таким образом, использовать только одну оболочку.)

Оболочка 1: выход

$ mkfifo mypipe # create a named pipe
$ chmod 666 mypipe # Give all users read-write access to the pipe
$ tail -f mypipe | mysql -umyName -p mySchema # pipe mypipe into mysql

В последней строке выше указывается именованный канал для постоянной подачи в процесс mysql. Всякий раз, когда вы выводите что-то в mypipe, оно будет отправлено процессу mysql в качестве стандартного ввода.

После этого вы не получите новый запрос, потому что ваш tail Команда будет работать, пока вы не убьете его процесс.

Держите эту оболочку открытой и ее tail процесс выполняется, пока вы используете другой процесс оболочки (Shell 2: ввод) для отправки команд mysql,

Оболочка 2: вход

$ echo 'show tables;' > mypipe # this will print output onto your *other* shell (Shell 1: output)
$ echo 'insert into mytable (1,2,3);' > mypipe # this performs an insertion

Системный журнал mysql сообщает об ошибках? Я хотел бы посмотреть на http://www.mysqlperformanceblog.com/2008/07/03/how-to-load-large-files-safely-into-innodb-with-load-data-infile/

Другие вопросы по тегам