в общем так
проблема в том что netams юзает функцию
Код: Выделить всё
LOAD DATA CONCURRENT LOCAL INFILE '%s' REPLACE INTO TABLE %s FIELDS TERMINATED BY ','
Но не просто убрали а закрыли, и достаточно собрать mysql51 сервер иклиент с опциейПри применении опции LOCAL выполнение может происходить несколько медленнее в сравнении с предоставлением серверу доступа к файлам напрямую, поскольку содержимое файла должно переместиться с клиентского хоста на сервер. С другой стороны, в этом случае нет необходимости в привилегиях FILE для загрузки локальных файлов.
и всё будет хорошо--enable-local-infile
я надумал 2 вида решение этой проблеммы, поправкой самого Netams и поправкой Mysql
И так решение Номбер 1: Поправка Mysql (Для FreeBSD)
идём в /usr/ports/databases/mysql51-server
открываем Makefile и добовляем
Код: Выделить всё
.if defined(ENABLE_LOCAL_INFILE) && ${ENABLE_LOCAL_INFILE} != ""
CONFIGURE_ARGS+=--enable-local-infile=${ENABLE_LOCAL_INFILE}
.endif
Код: Выделить всё
.if defined(WITH_CHARSET) && ${WITH_CHARSET} != ""
CONFIGURE_ARGS+=--with-charset=${WITH_CHARSET}
.endif
потом идём в
и добовляем/etc/make.conf
Код: Выделить всё
# for mysql-server
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql51-server
ENABLE_LOCAL_INFILE=yes
.endif
# for mysql-client
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql51-client
ENABLE_LOCAL_INFILE=yes
.endif
Сохраняем и естественно
Код: Выделить всё
cd /usr/ports/databases/mysql51-server
make deinstall clean
make install clean
Естественно если вам надо под другую ось, то тут тока компил из исходников с параметром --enable-local-infile
А теперь решение Номбер 2: Поправка Netams (Для любой оси но пример на FreeBSD)
Идём в
Код: Выделить всё
cd /usr/ports/net-mgmt/netams
Код: Выделить всё
make deinstall clean
make extract
Код: Выделить всё
cd work/netams-3.4.5/src
Код: Выделить всё
st_sql_mysql.c
И тут колдуем убираем слово LOCAL и добовляем полный путь до файлов Netams (У меня да и вообще по дефолту в FreeBSD (А может и везде не заморачивался) /var/netams/)snprintf(query, 254, "LOAD DATA CONCURRENT LOCAL INFILE '%s' %s INTO TABLE %s FIELDS TERMINATED BY ','", filename, replace, st_table_name[type]);
И сохраняем файликLOCAL INFILE '/var/netams/%s'
потом идём в
Код: Выделить всё
cd /usr/ports/net-mgmt/netams
Код: Выделить всё
make install
Код: Выделить всё
chmod -R mysql:mysql /var/netams
в принципе можно и эту проблемму решить просто покапаться по сорсам и дать всем этим файлам группу mysql или просто chown 755.
В общем всем спасибо у меня всё пользуйтесь на здоровье.
Литература http://mysql2.mirrors-r-us.net/doc/refm ... local.html