2013-09-06 2 views
1

Мне нужно прочитать таблицу базы данных из сценария Lua в pdns-recursor на сервере Scientific Linux 6.4, который поставляется с предварительно загруженным Lua.using mysql in lua script

Видимо, я должен использовать luarocks для установки luasql. При попытке установить luasql я получаю:

Checking Lua includes... lua.h not found 
lua.h is not on the server. 

Я попытался удалить установленную версию, чтобы я мог установить с двоичным, но тогда громил систему, которая, по-видимому использует установленный Lua для всего (ням, оборотов в минуту, и т.д.). Теперь мне нужно перезагрузить ОС. Как я могу получить доступ MySQL из встроенного Lua?

Заранее спасибо.

+0

Обратите внимание, что ваш SQL-поиск блокирует поток pdns-recursor, в котором вы находитесь (и по умолчанию есть только два потока). Вы должны серьезно рассмотреть возможность загрузки ваших данных в память и привязки к поисковым запросам Lua. – Habbie

+0

oh no ... поэтому я не могу выполнить запрос MySQL из потока pdns-recursor?!? –

+0

Я бы не сказал «не могу», но если у вас нет очень терпеливых пользователей, вам нужно будет настроить много потоков вместо значения по умолчанию «2», и это будет стоить памяти. – Habbie

ответ

3

Я предполагаю, что вы уже проверили yum, чтобы узнать, доступен ли luasql; Если нет, сначала вы должны это сделать, и, если возможно, установите его через yum.

Непосредственная причина проблемы, с которой вы сталкиваетесь, заключается в том, что luarocks автоматически создает модули из источника, что требует доступа к заголовкам lua. Они не нужны просто для запускают программы, которые используют Lua, поэтому они не установлены как часть обычного пакета Lua. Я не знаком с Scientific Linux, но вы можете получить их, установив пакет с именем lua-dev, lua-devel, lua-headers или его вариант. Вам также могут понадобиться пакеты mySQL (как собственно библиотеки, так и заголовки). Как только у вас есть установленные, попробуйте еще раз.

Возможно, вы также попробуете LuaDist, который я считаю более полированным, чем luarocks, и способен автоматически загружать больше зависимостей; в частности, он, вероятно, не потребует установки заголовков lua и может автоматически загружать и устанавливать lua из источника. Однако для этого требуется установить CMake.

Если по какой-либо причине вы не можете установить требуемые заголовки и не можете получить luarocks или luadist working, вы можете попробовать загрузить и построить luaSQL вручную. Заголовки Lua можно найти в исходном пакете Lua 5.1 и LuaSQL 2.2. Предполагая, что разработчики Scientific Linux не слишком настроили версию lua, которую они отправляют с собой, результаты должны быть совместимы с установкой системы Lua.

+0

[LuaSQL v 2.3.0] (http://keplerproject.github.io/luasql/doc/us/) – hjpotter92

+0

Спасибо ... вы были правы. Я сначала проверил yum и ничего не нашел, потому что у меня не было загружено все репозитории ... после загрузки репозиториев я нашел его и установил. –