Mysql, Unix | База данных |
Здравствуйте, гость ( Вход | Регистрация )
Mysql, Unix | База данных |
17.1.2009, 21:34
Сообщение
#1
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
Установка mysql на PtokaX 0.4.1.1 под unix описана здесь - http://mydc.ru/topic597.html
После установки проверяем работоспособность, пишем скрипт: CODE require "luasql.mysql" mysql = assert(luasql.mysql()) db_name = "" -- имя бд db_host = "" -- хост db_user = "" -- пользователь db_pass = "" -- пароль con = assert(mysql:connect(db_name, db_user, db_pass, db_host)) cur = assert(con:execute("SELECT version()")) Core.SendToAll("<mysql> MYSQL driver version is: "..luasql._MYSQLVERSION) Core.SendToAll("<mysql> "..luasql._COPYRIGHT) Core.SendToAll("<mysql> "..luasql._DESCRIPTION) Core.SendToAll("<mysql> "..luasql._VERSION) con:close() mysql:close() Если все ок, то увидите примерно следущее: Код <mysql> MYSQL driver version is: 5.0.45 <mysql> Copyright © 2003-2007 Kepler Project <mysql> LuaSQL is a simple interface from Lua to a DBMS <mysql> LuaSQL 2.1.1 Небольшой пример работы с mysql в lua. CODE require "luasql.mysql" mysql = assert(luasql.mysql()) db_name = "joomla" db_host = "localhost" db_user = "root" db_pass = "ххххххххххххх" con = assert(mysql:connect(db_name, db_user, db_pass, db_host)) function ChatArrival(tUser,sData) local _,_,sCmd = sData:find"%b<>%s+(%S+)|" if sCmd == "+1" then for id, name, nick in rows(con, "SELECT * FROM `jos_users`") do Core.SendToAll("ID -> "..id.."\nNAME -> "..name.."\nNICK -> "..nick) end return true end end function rows (connection, sql_statement) local cursor = assert (connection:execute (sql_statement)) return function () return cursor:fetch() end end con:close() mysql:close() Выше в примере я подключался к базе данных бесплатной CMS Joomla и выводил Id, Имя пользователя и его Ник. Вся необходимая информация о проекте LuaSQL - |
|
|
23.2.2011, 10:00
Сообщение
#2
|
|
Участник Группа: Пользователи Сообщений: 35 Регистрация: 17.1.2009 Из: Свердловская область Пользователь №: 1 836 Спасибо сказали: 3 раза |
Здравствуйте, подскажите как собрать luasql под centos 5.5
Лог консоли Код # make gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I../compat/src -I/opt/local/include -I/usr/local/include -c -o src/luasql.o src/luasql.c gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I../compat/src -I/opt/local/include -I/usr/local/include -c -o src/ls_sqlite3.o src/ls_sqlite3.c src/ls_sqlite3.c:14:21: error: sqlite3.h: Нет такого файла или каталога src/ls_sqlite3.c:41: ошибка: expected specifier-qualifier-list before ‘sqlite3’ src/ls_sqlite3.c:51: ошибка: expected specifier-qualifier-list before ‘sqlite3_stmt’ src/ls_sqlite3.c: In function ‘finalize’: src/ls_sqlite3.c:95: предупреждение: implicit declaration of function ‘sqlite3_finalize’ src/ls_sqlite3.c:95: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c:95: ошибка: ‘SQLITE_OK’ undeclared (first use in this function) src/ls_sqlite3.c:95: ошибка: (Each undeclared identifier is reported only once src/ls_sqlite3.c:95: ошибка: for each function it appears in.) src/ls_sqlite3.c:97: предупреждение: implicit declaration of function ‘sqlite3_errmsg’ src/ls_sqlite3.c:97: предупреждение: implicit declaration of function ‘sqlite3_db_handle’ src/ls_sqlite3.c:97: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c:97: предупреждение: assignment makes pointer from integer without a cast src/ls_sqlite3.c:98: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c:105: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c: In function ‘cur_fetch’: src/ls_sqlite3.c:116: ошибка: ‘sqlite3_stmt’ undeclared (first use in this function) src/ls_sqlite3.c:116: ошибка: ‘vm’ undeclared (first use in this function) src/ls_sqlite3.c:116: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c:117: предупреждение: ISO C90 forbids mixed declarations and code src/ls_sqlite3.c:122: предупреждение: implicit declaration of function ‘sqlite3_step’ src/ls_sqlite3.c:125: ошибка: ‘SQLITE_DONE’ undeclared (first use in this function) src/ls_sqlite3.c:128: ошибка: ‘SQLITE_ROW’ undeclared (first use in this function) src/ls_sqlite3.c:141: предупреждение: implicit declaration of function ‘sqlite3_column_text’ src/ls_sqlite3.c:141: предупреждение: приведение к типу указателя от целого другого размера src/ls_sqlite3.c:153: предупреждение: приведение к типу указателя от целого другого размера src/ls_sqlite3.c:165: предупреждение: приведение к типу указателя от целого другого размера src/ls_sqlite3.c: In function ‘cur_close’: src/ls_sqlite3.c:187: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c: На верхнем уровне: src/ls_sqlite3.c:230: ошибка: expected declaration specifiers or ‘...’ before ‘sqlite3_stmt’ src/ls_sqlite3.c: In function ‘create_cursor’: src/ls_sqlite3.c:245: ошибка: ‘cur_data’ has no member named ‘sql_vm’ src/ls_sqlite3.c:245: ошибка: ‘sql_vm’ undeclared (first use in this function) src/ls_sqlite3.c:254: предупреждение: implicit declaration of function ‘sqlite3_column_name’ src/ls_sqlite3.c:254: предупреждение: passing argument 2 of ‘lua_pushstring’ makes pointer from integer without a cast src/ls_sqlite3.c:263: предупреждение: implicit declaration of function ‘sqlite3_column_decltype’ src/ls_sqlite3.c:263: предупреждение: passing argument 2 of ‘lua_pushstring’ makes pointer from integer without a cast src/ls_sqlite3.c: In function ‘conn_close’: src/ls_sqlite3.c:291: предупреждение: implicit declaration of function ‘sqlite3_close’ src/ls_sqlite3.c:291: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c: In function ‘conn_escape’: src/ls_sqlite3.c:299: предупреждение: implicit declaration of function ‘sqlite3_mprintf’ src/ls_sqlite3.c:299: предупреждение: initialization makes pointer from integer without a cast src/ls_sqlite3.c:307: предупреждение: implicit declaration of function ‘sqlite3_free’ src/ls_sqlite3.c: In function ‘conn_execute’: src/ls_sqlite3.c:322: ошибка: ‘sqlite3_stmt’ undeclared (first use in this function) src/ls_sqlite3.c:322: ошибка: ‘vm’ undeclared (first use in this function) src/ls_sqlite3.c:323: предупреждение: ISO C90 forbids mixed declarations and code src/ls_sqlite3.c:327: предупреждение: implicit declaration of function ‘sqlite3_prepare’ src/ls_sqlite3.c:327: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:328: ошибка: ‘SQLITE_OK’ undeclared (first use in this function) src/ls_sqlite3.c:330: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:330: предупреждение: assignment makes pointer from integer without a cast src/ls_sqlite3.c:340: предупреждение: implicit declaration of function ‘sqlite3_column_count’ src/ls_sqlite3.c:343: ошибка: ‘SQLITE_ROW’ undeclared (first use in this function) src/ls_sqlite3.c:343: ошибка: ‘SQLITE_DONE’ undeclared (first use in this function) src/ls_sqlite3.c:345: предупреждение: implicit declaration of function ‘sqlite3_reset’ src/ls_sqlite3.c:346: ошибка: слишком много аргументов в вызове функции ‘create_cursor’ src/ls_sqlite3.c:353: предупреждение: implicit declaration of function ‘sqlite3_changes’ src/ls_sqlite3.c:353: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:358: предупреждение: assignment makes pointer from integer without a cast src/ls_sqlite3.c: In function ‘conn_commit’: src/ls_sqlite3.c:380: предупреждение: implicit declaration of function ‘sqlite3_exec’ src/ls_sqlite3.c:380: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:382: ошибка: ‘SQLITE_OK’ undeclared (first use in this function) src/ls_sqlite3.c: In function ‘conn_rollback’: src/ls_sqlite3.c:408: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:409: ошибка: ‘SQLITE_OK’ undeclared (first use in this function) src/ls_sqlite3.c: In function ‘conn_getlastautoid’: src/ls_sqlite3.c:425: предупреждение: implicit declaration of function ‘sqlite3_last_insert_rowid’ src/ls_sqlite3.c:425: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c: In function ‘conn_setautocommit’: src/ls_sqlite3.c:442: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:449: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:450: ошибка: ‘SQLITE_OK’ undeclared (first use in this function) src/ls_sqlite3.c: На верхнем уровне: src/ls_sqlite3.c:467: ошибка: expected declaration specifiers or ‘...’ before ‘sqlite3’ src/ls_sqlite3.c: In function ‘create_connection’: src/ls_sqlite3.c:476: ошибка: ‘conn_data’ has no member named ‘sql_conn’ src/ls_sqlite3.c:476: ошибка: ‘sql_conn’ undeclared (first use in this function) src/ls_sqlite3.c: In function ‘env_connect’: src/ls_sqlite3.c:490: ошибка: ‘sqlite3’ undeclared (first use in this function) src/ls_sqlite3.c:490: ошибка: ‘conn’ undeclared (first use in this function) src/ls_sqlite3.c:491: предупреждение: ISO C90 forbids mixed declarations and code src/ls_sqlite3.c:495: предупреждение: implicit declaration of function ‘sqlite3_open’ src/ls_sqlite3.c:496: ошибка: ‘SQLITE_OK’ undeclared (first use in this function) src/ls_sqlite3.c:498: предупреждение: assignment makes pointer from integer without a cast src/ls_sqlite3.c:506: ошибка: слишком много аргументов в вызове функции ‘create_connection’ make: *** [src/ls_sqlite3.o] Ошибка 1 |
|
|
23.2.2011, 14:04
Сообщение
#3
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
для начала открыть хотя бы конфиг сборки.
|
|
|
23.2.2011, 23:01
Сообщение
#4
|
|
Участник Группа: Пользователи Сообщений: 35 Регистрация: 17.1.2009 Из: Свердловская область Пользователь №: 1 836 Спасибо сказали: 3 раза |
Поторопился с написанием поста
Открыл конфиг, подправил, далее make и получаем так: console Код # make export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I/root/compat-5.1r5 -I/usr/include/mysql -I/usr/local/include -o src/mysql.so -shared src/luasql.o src/ls_mysql.o -L/usr/lib/mysql -lmysqlclient -lz /usr/bin/ld: src/luasql.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC src/luasql.o: could not read symbols: Bad value collect2: выполнение ld завершилось с кодом возврата 1 make: *** [src/mysql.so] Ошибка 1 config Код # Driver (leave uncommented ONLY the line with the name of the driver) T= mysql #T= oci8 #T= odbc #T= postgres #T= sqlite #T=sqlite3 # Installation directories # Default prefix PREFIX = /usr/local # System's libraries directory (where binary libraries are installed) LUA_LIBDIR= $(PREFIX)/lib/lua/5.1 # System's lua directory (where Lua libraries are installed) LUA_DIR= $(PREFIX)/share/lua/5.1 # Lua includes directory LUA_INC= $(PREFIX)/include # Lua version number (first and second digits of target version) LUA_VERSION_NUM= 514 # OS dependent LIB_OPTION= -shared #for Linux #LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X LIBNAME= $T.so COMPAT_DIR= /root/compat-5.1r5 # Compilation parameters # Driver specific ######## MySQL DRIVER_LIBS= -L/usr/lib/mysql -lmysqlclient -lz DRIVER_INCS= -I/usr/include/mysql ######## Oracle OCI8 #DRIVER_LIBS= -L/home/oracle/OraHome1/lib -lz -lclntsh #DRIVER_INCS= -I/home/oracle/OraHome1/rdbms/demo -I/home/oracle/OraHome1/rdbms/public ######## PostgreSQL #DRIVER_LIBS= -L/usr/local/pgsql/lib -lpq #DRIVER_INCS= -I/usr/local/pgsql/include ######## SQLite #DRIVER_LIBS= -lsqlite #DRIVER_INCS= ######## SQLite3 #DRIVER_LIBS= -L/opt/local/lib -lsqlite3 #DRIVER_INCS= -I/opt/local/include ######## ODBC #DRIVER_LIBS= -L/usr/local/lib -lodbc #DRIVER_INCS= -DUNIXODBC -I/usr/local/include WARN= -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic INCS= -I$(LUA_INC) CFLAGS= -O2 $(WARN) -I$(COMPAT_DIR) $(DRIVER_INCS) $(INCS) $(DEFS) CC= gcc |
|
|
23.2.2011, 23:13
Сообщение
#5
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Цитата /usr/bin/ld: src/luasql.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC И опять поторопился. Допиши в это метсо Код # OS dependent LIB_OPTION= -shared #for Linux -fPIC |
|
|
23.2.2011, 23:17
Сообщение
#6
|
|
Участник Группа: Пользователи Сообщений: 35 Регистрация: 17.1.2009 Из: Свердловская область Пользователь №: 1 836 Спасибо сказали: 3 раза |
Спасибо за быстрый ответ, но:
console Код # make export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I/root/compat-5.1r5 -I/usr/include/mysql -I/usr/local/include -o src/mysql.so -shared -fPIC src/luasql.o src/ls_mysql.o -L/usr/lib/mysql -lmysqlclient -lz /usr/bin/ld: src/luasql.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC src/luasql.o: could not read symbols: Bad value collect2: выполнение ld завершилось с кодом возврата 1 make: *** [src/mysql.so] Ошибка 1 т.е. ничего не поменялось |
|
|
24.2.2011, 2:03
Сообщение
#7
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
А make clean сделал как добавил?)
|
|
|
24.2.2011, 19:58
Сообщение
#8
|
|
Участник Группа: Пользователи Сообщений: 35 Регистрация: 17.1.2009 Из: Свердловская область Пользователь №: 1 836 Спасибо сказали: 3 раза |
ех... в линуксе новичек, как-то и забылось.
вот как бы сделал Код gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I/root/compat-5.1r5 -I/usr/include/mysql -I/usr/local/include -c -o src/luasql.o src/luasql.c
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I/root/compat-5.1r5 -I/usr/include/mysql -I/usr/local/include -c -o src/ls_mysql.o src/ls_mysql.c In file included from src/ls_mysql.c:19: /usr/include/mysql/mysql.h:129: предупреждение: ISO C90 не поддерживает тип ‘long long’ export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic -I/root/compat-5.1r5 -I/usr/include/mysql -I/usr/local/include -o src/mysql.so -shared -fPIC src/luasql.o src/ls_mysql.o -L/usr/lib/mysql -lmysqlclient -lz /usr/bin/ld: src/luasql.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC src/luasql.o: could not read symbols: Bad value collect2: выполнение ld завершилось с кодом возврата 1 make: *** [src/mysql.so] Ошибка 1 |
|
|
24.2.2011, 20:10
Сообщение
#9
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Странно. У меня с теми модификациями собирается.
|
|
|
21.9.2013, 7:14
Сообщение
#10
|
|
Глубина-глубина, я не твой… Отпусти меня, глубина… Группа: Пользователи Сообщений: 199 Регистрация: 13.10.2010 Из: Михайловск Пользователь №: 7 882 Спасибо сказали: 23 раза |
Доброго времени суток. Установил пакеты liblua5.1-sql-mysql-2 liblua5.1-sql-mysql-dev но при включении любого скрипта использующего mysql выводит ошибку:
Код 21.09.2013 08:09:12 - /var/ptokax/scripts/ajaxchat.lua:198: attempt to index global 'luasql' (a nil value) 21.09.2013 08:09:12 - /var/ptokax/scripts/ajaxchat.lua:235: attempt to index global 'env' (a nil value) os debian 7.1 mysql 5.5.31 lua 5.1 ptokax 4.1.2 Подскажите пожалуйста как с этим бороться. |
|
|
21.9.2013, 17:34
Сообщение
#11
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Код luasql = require"luasql.mysql"
env = luasql.mysql() |
|
|
21.9.2013, 18:17
Сообщение
#12
|
|
Глубина-глубина, я не твой… Отпусти меня, глубина… Группа: Пользователи Сообщений: 199 Регистрация: 13.10.2010 Из: Михайловск Пользователь №: 7 882 Спасибо сказали: 23 раза |
|
|
|
Похожие темы
|
Сейчас: 23.11.2024, 1:45 |