Когда вы используете команду INTO OUTFILE
, она экспортирует данные в локальную папку сервера, а не в тот, где вы выполняете запрос.
Пример: вы находитесь на своем компьютере (ip: 192.168.0.100) и подключаетесь к mysqlserver (ip: 192.168.0.101) с помощью команды mysql: mysql -uuser -h192.168.0.101 -A database
.При выполнении SELECT * INTO OUTFILE
файл сохраняется на mysqlserver (ip: 192.168.0.101) и НЕ на вашем компьютере (ip: 192.168.0.100).
Теперь вы можете использовать скрипт, который создает CSVфайл (в вашем cronjob - вы выбираете все данные, генерируете файл и отправляете через scp на другой сервер).
Или - вы также можете смонтировать NFS на /shared/
, и когда вы создадите файл автоматически, он будет у другого сервера.
Или - вы можете просто запустить команду mysql в bashтакой скрипт с вашего первого сервера.
mysql -uroot test -B -e "select * from test.mytable;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > /tmp/filename.csv
источник: http://tlug.dnho.net/node/209