Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2013, 23:25   #1
Iron
Junior Member
 
Регистрация: 28.01.2013
Сообщений: 23
Вес репутации: 0
Iron is an unknown quantity at this point
По умолчанию OpenWRT + MySQL

Как можно из OpenWRT работать непосредственно с БД на хостинге? Очень удобно было бы хранить данные снятые с датчиков для последующего анализа, построения графиков и т.д.
Iron вне форума   Ответить с цитированием
Старый 29.01.2013, 06:21   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Для OpenWrt лучше работать с базой Sqlite3 так как она менее требовательна к ресурсам.

Для установки sqlite3 требуется установленный и настроенный сервер lighttpd и PHP5

Устанавливаем следующие пакеты
opkg update
opkg install libsqlite3 php5-mod-sqlite php5-mod-sqlite3


Раскоментируем указаные ниже строки в фаиле /etc/php.ini

Код:
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite3.so

[sqlite]
sqlite.assoc_case = 0

[sqlite3]
sqlite3.extension_dir = /www
Перезапускаем сервер с новыми настройками
/etc/init.d/lighttpd restart

пример PHP скрипта
Создание базы данных, создание таблицы в базе, запись данных в таблицу, выборка и вывод данных
PHP код:
<?php 

  $db 
= new SQLite3("mydb.db");// Создадим новую базу данных 
  
if (!$db) exit("Невозможно создать базу данных!"); 


$db->exec('CREATE TABLE IF NOT EXISTS test (сity, street, house, site)'); //Создаем таблицу test если она не создана, c 4-мя переменными  
$db->exec("INSERT INTO test VALUES ('Москва', 'Столетова', '7', 'Cyber-Place.ru' )");//добавим записи в таблицу

$result $db->query('SELECT * FROM test'); //выполним запрос

var_dump($result->fetchArray()); //покажем что получили


  
$db->close(); //закроем базу
  
?>
Преимущества SQLite
Отсутствие необходимости настройки сервера СУБД
Возможность простого распространения со своим продуктом
Полностью свободная лицензия
Кроссплатформенность (как минимум OpenWrt, Linux, Free BSD, QNX, Windows)
Высокая скорость (на простых операциях в разы быстрее My SQL и на порядок быстрее Postgre SQL)
Поддержка большого подмножества SQL92
Поддержка транзакций, триггеров, представлений (views), вложенных запросов
Безопасность. БД хранится в одном файле, права доступа к которому можно контролировать стандартными средствами ОС
Возможность использовать разные языки программирования:
Очень экономичная, в плане ресурсов, архитектура.

Ограничения SQLite
SQLite не предназначена для систем с большим количеством процессов, которые пишут в одну базу
При переходе с SQLite 2.* на SQLite 3.* изменился формат базы, поэтому требуется выполнить «sqlite <старая база> .dump | sqlite3 <новая база>"

Официальный сайт

Последний раз редактировалось andr128; 17.04.2013 в 19:47.
Admin вне форума   Ответить с цитированием
Старый 29.01.2013, 07:40   #3
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Стыдно признаться, но я с MySQL не работал.
Можно пример как создать базу.
Ну и классический вопрос как установить и что нужно настроить
andr128 вне форума   Ответить с цитированием
Старый 29.01.2013, 07:45   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Стыдно признаться, но я с MySQL не работал.
Я сам не работал никогда с MySQL

Цитата:
Можно пример как создать базу.
В примере сразу создается база и таблица, читай комментарии

Цитата:
Ну и классический вопрос как установить и что нужно настроить
Установка PHP5
С настройками разбираюсь
Admin вне форума   Ответить с цитированием
Старый 29.01.2013, 11:02   #5
Iron
Junior Member
 
Регистрация: 28.01.2013
Сообщений: 23
Вес репутации: 0
Iron is an unknown quantity at this point
По умолчанию

Если использовать локальную БД, тогда конечно лучше SQLite так как нет постоянно висящего процесса, SQLite это просто файл на диске.
Я имел ввиду БД на удаленном хостинге, хотя если есть PHP то его же средствами можно и с MySQL работать.


PHP код:
<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Ошибка соединения: ' mysql_error());
}
echo 
'Успешно соединились';
mysql_close($link);
?>
http://php.net/manual/ru/book.mysql.php

Там же на хостинге повесить и страничку с информацией, что-бы меньше нагружать роутер.
Iron вне форума   Ответить с цитированием
Старый 29.01.2013, 17:19   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Разобрался с Sqlite3 в OpenWrt
Admin вне форума   Ответить с цитированием
Старый 29.01.2013, 18:03   #7
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Для OpenWrt лучше работать с базой sqlite3.
Хорошо пусть будет SQLite. Я так понял MySQL кушает много памяти.
А какие пакеты ставить и как настраивать?
andr128 вне форума   Ответить с цитированием
Старый 29.01.2013, 19:14   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Настройки sqlite3 в OpenWrt
Возможно что я, что нибудь да забыл описать, если что пишите
Admin вне форума   Ответить с цитированием
Старый 30.01.2013, 03:56   #9
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Спасибо
andr128 вне форума   Ответить с цитированием
Старый 18.02.2013, 12:13   #10
Валерий
Junior Member
 
Регистрация: 14.01.2013
Сообщений: 18
Вес репутации: 0
Валерий is an unknown quantity at this point
По умолчанию

Всем привет. А вот у меня PHP не понимает, что такое SQLite3. В php.ini вроде указал правильно папку с раcширениями, но при выполнении вышеописанного скрипта имею: Fatal error: Class 'SQLite3' not found. Где копать?
Валерий вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 10:27. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика