Можно ли использовать mysql в коммерческих проектах

Законно ли использовать MySQL в коммерческой среде? [закрытый]

Я не буду выпускать исходный код программного обеспечения, и это будет коммерческое приложение. Могу ли я использовать MySQL, не платя никакой комиссии MySQL? если это незаконно, любая альтернативная база данных предлагает?

3 ответов

да, и вам не нужно выпускать источник вашего проекта (но вам нужно выпустить любую модификацию, которую вы делаете для MySQL (только те, которые не вся программа), если вы также выпускаете свой проект в двоичной форме, содержащей измененный код MySQL)

проще говоря, если вы изменяете MySQL, и эти изменения в конечном итоге распространяются в двоичной форме, вы должны публично выпустить вышеупомянутые изменения.

MySQL сам по себе является открытым исходным кодом и может использоваться как автономный продукт в коммерческой среде. Если вы используете mySQL на веб-сервере, вы можете сделать это для любой цели, коммерческой или нет. Если вы запускаете веб-сайт, который использует mySQL, вам не нужно будет выпускать какой-либо из вашего кода. Все будет хорошо.

mySQL имеет лицензии предприятия С (Я думаю) другой базой кода и премиальной поддержкой Sun, но они полностью необязательны.

есть ограничения на перераспределение mySQL в закрытом исходном продукте и связывание против MySQL библиотеки, как было указано в другом комментарии. Что касается перераспределения:

OEMs, ISVs, VARs и другие дистрибьюторы, которые объединяют и распространять коммерческую лицензию программное обеспечение с программным обеспечением MySQL и do не хотите распространять исходный код на продаже лицензионного программного обеспечения в версии 2 GNU General Общественный Лицензия («GPL») должна войти в коммерческое лицензионное соглашение с солнцем.

Если вы хотите распространять mySQL вместе с коммерческим продуктом, проверьте их юридические страницы. Я думаю, что большинство компаний обходят это, устанавливая сервер mySQL отдельно.

GPL и связывание с клиентскими библиотеками?

Я не знаю, что тот факт, что GPL (лицензия mySQL распространяется под) запрещает связывание против программного обеспечения с закрытым исходным кодом означает для приложений, которые не связаны с mySQL напрямую, но корабль с клиентскими библиотеками mySQL. Они должны быть с открытым исходным кодом? Если кто-нибудь хочет пролить свет на это, в отдельном ответе или комментарии, мне было бы очень интересно.

насколько я понял:

Если вы используете MySQL «как есть» только для целей тестирования, вы можете использовать его.

Если вы измените MySQL

  • вы все еще можете использовать его но вы должны сделать изменения, которые вы обнародовали

    (GPL — «передача»)

Если вы распространяете MySQL или работу, производную от MySQL в любом случае, то это говорит все:

Q3: как коммерческий OEM, ISV или VAR, когда я должен купить коммерческую лицензию для программного обеспечения MySQL?

A: OEMs, ISVs и VARs, которые хотят преимущества встраивания коммерческих двоичных файлов программного обеспечения MySQL в свои коммерческие приложения, но не хотят подчиняться GPL и не хотят выпускать исходный код для своих проприетарных приложений, должны приобрести коммерческую лицензию от Oracle. Приобретение коммерческая лицензия означает, что GPL не применяется, а коммерческая лицензия включает гарантии, которые дистрибьюторы обычно находят в коммерческих дистрибьюторских соглашениях.

Источник

спользование MySQL в коммерческих целях / MySQL

yemets63

Member

Откуда: Самара

Сообщений: 1478

почитал я тексты copyright для MySQL и конечно ни чего не понял, с одной стороны я могу использовать базы, с другой стороны нет в коммерческих целях.

т.е. если я использую это не больше чего то и на каком то типе процессоров, далее… ., я думаю юристы спразу не разберуться.

так вот, вопрос, кто знает?

могу ли я использовать только базы данных MySQL без всех ФИЧ и до какой версии чтобы было безслпатно для коммерческого использования. делаю проект на MySQL (большая база данных для хранения текста и цифр и файлов до 64Мб), отдаю проект заказчику. где в итоге будет лежать MySQL у заказчика мне безразницы, на хостинге или на своём ПК, это уже проблема заказчика

DHDD

Member

Откуда:

Сообщений: 103

MariaDB — ответвление от системы управления базами данных MySQL, разрабатываемое сообществом под лицензией GNU GPL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation.

Толчком к созданию стала необходимость обеспечения свободного статуса СУБД, в противовес политике лицензирования MySQL компанией Oracle.

yemets63

Member

Откуда: Самара

Сообщений: 1478

DHDD,

меня политика лицензирования Oracle не очень напрягает, когда то повезло и до сих пор действует купленные лицензии на Oracle как персонал, так и проф, именно для разработчика. мне этого достаточно, а как там дальше заказчик с ораклом уже договаривается это не моё,

MySQL выбрал ни я, было предложение от заказчика, хочу или MSSQL или MySQL, перевес в сторону MySQL так как он висит на многих хостерах. по сути я тупо могу сказать, что сделал текстовый SQL скрипт и он создал базу, и вообще я делал проект в слепую без установленного MySQL, но это не солидно же.

может MariaDB и альтернатив, но у меня вопрос по MySQL

на сколько я знаю структуру ДБ MySQL, и знаю потребности, мне MySQL 5й версии будет достаточно.

ну так как разработчик что мне нужно чтобы я мог использовать MySQL

DHDD

Member

Откуда:

Сообщений: 103

MariaDB это и есть MySQL.

Oracle купила MySQL, а разработчики MySQL продолжили её разработку в новой компании под новым именем MariaDB.

(Джавы тоже две — платная и бесплатная, но она же java)

Сообщение было отредактировано: 18 янв 21, 17:16

yemets63

Member

Откуда: Самара

Сообщений: 1478

DHDD,

т.е. я могу все прикрутить и создать в своем проекте, потом заказчи просто легко берет и покупает например хостинг на рег ру или джино, и импортирует туда базу, и все клиенты работаю

P:S:

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

DHDD

Member

Откуда:

Сообщений: 103

Да. Хостинги сразу перешли на MariaDB. И MariaDB там уже будет.
yemets63

Member

Откуда: Самара

Сообщений: 1478

DHDD,

спасибо огромное за совет.

короче, удалил все попытки MySQL

поставил MariaDB

создал несколько схем, накатил на них мои пятигодовалой давности базы, и все работает.

подключил мой сервер приложений из под Дельфи писанный для MySQL , короче всё рулит. супер.

за скорость пока сказать не могу, время покажет.

Fitter2

Member

Откуда:

Сообщений: 146

Что не так с MySQL edition? C Перконой?
ScareCrow

Member

Откуда: Белый город

Сообщений: 17388

Fitter2
Что не так с MySQL edition? C Перконой?

лицензия.

ты обязан открывать исходные коды или покупать лицензию

Akina

Member

Откуда: Зеленоград, Москва, Россия

Сообщений: 21171

DHDD
MariaDB это и есть MySQL.

Уже давно нет. Общего много, но и разница накопилась солидная. Сейчас их лучше рассматривать как разные СУБД, просто с высокой степенью совместимости.

Fitter2

Member

Откуда:

Сообщений: 146

ScareCrow>

А можно чуть больше деталей?

У меня сайт и я должен всем давать ссылку на гит, или у меня апликация на делфи и при продаже на диске я должен отдать исходники?

Alex_Ustinov

Member

Откуда: Nickel

Сообщений: 3793

Fitter2,

имхо

условно — если компилируется апп с динамической линковкой клиентской библиотеки libmysql — то все чисто. Если статически (т.е. внедряется или встраиваем сервер) -то подпадаем под коммерцию.

Т.е. для Web-апп или апп+ODBC никаких лицензий не надо

Alex_Ustinov

Member

Откуда: Nickel

Сообщений: 3793

https://mariadb.com/kb/en/licensing-faq/
The MariaDB client libraries for C, Java and ODBC are distributed under the LGPL license, version 2.1 or later. The LGPL license allows you to distribute these MariaDB client libraries freely with any application.

то есть MariaDB под LGPL, можно использовать как хочешь с client libraries for C, Java and ODBC (libmysql odbc jdbc)

Сообщение было отредактировано: 22 янв 21, 17:12

Fitter2

Member

Откуда:

Сообщений: 146

Alex_Ustinov>

Спасибо.

Я уж очканул, что-то пропустил.

Ссылка на сообщение

Ссылка (включая название темы)

Ссылка (URL)

x

Источник

Какая версия и как использовать бесплатную СУБД MySQL в коммерческих проектах?

В настоящее время MySQL Edition Server 5.5.16 находится под GPL. Это означает, что он может быть использован в проектах, которые также являются проектами с открытым исходным кодом. Бюджет нашего проекта очень ограничен, и нам нужно найти решение для использования бесплатной версии MySQL в коммерческом проекте. У меня есть несколько вопросов:

1) Какая ранняя версия MySQL была бы надежной и без ошибок для использования в коммерческих проектах?

2) Об использовании текущего сервера MySQL Edition Server 5.5.16 с GPL: если проектная архитектура программного обеспечения разработана с поддержкой подключения многих СУБД, то законно ли иметь проектное программное обеспечение под лицензией не-GPL? Я имею в виду, предположим, что программное обеспечение разработано с поддержкой нескольких СУБД, а программное обеспечение поставлено под коммерческую лицензию. Если клиент решает использовать версию MySQL GPL, нарушает ли он лицензию GPL?

3) Я слышал некоторые негативные ответы о том, что PostgreSQL глючит и не оптимизирован для модификации и хранения больших наборов данных. Единственная причина, по которой он все еще используется в некоторых небольших коммерческих проектах, заключается в том, что он бесплатный. Что вы думаете об этом?

ОБНОВЛЕНИЕ: также мы планируем использовать несколько серверов, поэтому репликация ведущий-ведомый также необходима.

ОБНОВЛЕНИЕ 2: Я слышал об одном случае: было использовано ~1 ГБ PostgreSQL DB. База данных активно использовалась с обновлениями, изменяя почти все данные. Проблема заключалась в том, что база данных постоянно увеличивалась примерно в десять раз каждые 2,5 месяца. Они использовали PostgreSQL 8.3 + CentOS. Также был использован AUTOVACUUM. После сброса базы данных, уничтожения старой, воссоздания базы данных и импорта они смогли уменьшить ее размер ~ в 10 раз. Существующие сообщения ( здесь и здесь) показывают, что эта проблема является относительной даже в последней версии PostgreSQL 9. Я бы не назвал это нормальным поведением, и такой рост размера в нашем случае неприемлем.

ОБНОВЛЕНИЕ3: спасибо всем за ответы. Все ответы относительны и полезны для вопроса.

Centurion 19 окт ’11 в 08:35 2011-10-19 08:35

2011-10-19 08:35

5 ответов

Решение

Другие авторы упоминали, что в основном ссылки на mysql означают, что вы лицензировали GPL проекта или какую-то другую лицензию ОС, для которой Oracle / MySQL делает исключение, или она коммерческая, и вы должны им деньги. Тем не мение…

Хорошо, PostgreSQL хранит свои данные в хранилище данных, которое поддерживает MVCC, управление несколькими версиями параллелизма. На простом уровне это означает, что каждая транзакция получает моментальный снимок базы данных, который связан с момента, когда эта транзакция начинается, пока она не завершится или не откатится. Это означает, что в любой момент времени у одного кортежа может быть несколько живых версий в базе данных. Из-за способа, которым MVCC реализован в pgsql, эти две версии существуют одновременно в хранилище данных. В конце концов, все, кроме самых новых, будут старше, чем самая старая запущенная транзакция, и могут быть восстановлены и повторно использованы БД. Процесс, который восстанавливает эти старые мертвые кортежи, называется пылесосом.

В 8.3 старые мертвые блоки отслеживались с помощью сегмента общей памяти, называемого картой свободного пространства. Если либо вакуумы недостаточно агрессивны, ИЛИ если на карте свободного пространства не хватает места, то база данных может создавать мертвые кортежи быстрее, чем она может восстанавливать их (вакуум) или запоминать их (карта свободного пространства).

В версии 8.4 карта свободного пространства становится необслуживаемой для пользователя, поскольку она хранится на жестком диске в файлах.fsm. однако проблема с вакуумом все еще существует. autovacuum настроен не слишком агрессивно, чтобы не убивать что-то вроде ноутбука или небольшого сервера при установке. На больших машинах с большим количеством возможностей ввода-вывода, таких как сервер с 16 твердотельными накопителями в массиве RAID-10, вы можете повысить агрессивность автоочистки, и она может справиться с довольно сумасшедшими скоростями передачи. Вы можете получать от 1000 до 3000 транзакций в секунду в течение длительных периодов времени на сервере с достаточно агрессивным автоматическим вакуумом и быстрым аппаратным RAID-контроллером с большим количеством дисков. Число TPS, приближающееся к 10000, возможно с более дорогими и большими серверами. Все это при обслуживании сотен соединений.

tl; dr: 8.3 старый, и у def были некоторые проблемы. 8.4 и выше имеют лучшее восстановление свободного пространства, но все еще нуждаются в агрессивном автоваке, чтобы не отставать от большой нагрузки.

2011-10-20 09:01

2) Об использовании текущего сервера MySQL Edition Server 5.5.16 с GPL: если проектная архитектура программного обеспечения разработана с поддержкой подключения многих СУБД, то законно ли иметь проектное программное обеспечение под лицензией не-GPL? Я имею в виду, предположим, что программное обеспечение разработано с поддержкой нескольких СУБД, а программное обеспечение поставлено под коммерческую лицензию. Если клиент решает использовать версию MySQL GPL, нарушает ли он лицензию GPL?

Как только вы связываетесь с библиотекой, лицензированной по лицензии GPL, весь объем кода лицензируется по лицензии GPL. Oracle делает исключение только для других бесплатных лицензий.

Fred Foo 19 окт ’11 в 08:44 2011-10-19 08:44

2011-10-19 08:44

3) Я слышал много негативных ответов о том, что PostgreSQL глючит и не оптимизирован для модификации и хранения больших наборов данных. Единственная причина, по которой он все еще используется в некоторых небольших коммерческих проектах, заключается в том, что он бесплатный. Что вы думаете об этом?

Это ФУД. PostgreSQL — это полнофункциональная высокопроизводительная СУБД, используемая в нескольких крупномасштабных развертываниях.

2011-10-19 08:39

3) Я слышал много негативных ответов о том, что PostgreSQL глючит и не оптимизирован для модификации и хранения больших наборов данных. Единственная причина, по которой он все еще используется в некоторых небольших коммерческих проектах, заключается в том, что он бесплатный. Что вы думаете об этом?

ROFL

Ты, должно быть, шутишь! Чистая ФУД и больше ничего.

У нас есть пара ТБ данных в базе данных PostgreSQL, и она по-прежнему растет примерно на 200 ГБ в месяц. Нет ошибок, нет проблем, просто отличная производительность. Также на 500 одновременных пользователей, никаких проблем вообще. Проверьте список рассылки, чтобы посчитать ошибки и посмотреть, как быстро они устраняются. Не удивляйтесь, когда есть исправление в течение нескольких часов. MySQL может учиться на этом.

https://s.postgresql.org/pgsql-bugs/

2011-10-19 09:14

У меня такая же проблема. Ранее я использовал MySQL в коммерческих проектах. Но после того, как oracle вступил во владение и изменили лицензионную политику, я искал другие варианты, включая SQL-Express, DB2-Express, SQL-lite, PostgreSql

Я не буду вдаваться в сравнения, потому что вокруг много информации. Но PostgreSql, безусловно, лучший в отношении

а) обработка больших наборов данных

б) стандарты SQL

в) встроенная документация

г) Статистика использования базы данных

На самом деле, я мог бы начать проект в одночасье, без каких-либо накладных расходов относительно изменений в командах SQL ИЛИ документации.

Тем не менее, поскольку я использую dotnet в Windows, Npgsql является единственным надежным соединителем, который нас пугает.

Но пока что разработка с PostgreSql 9.0 была абсолютно легкой.

arvind 19 окт ’11 в 10:22 2011-10-19 10:22

2011-10-19 10:22

Источник

База данных в коммерческом проекте: как поступить?

Всех с окончанием праздников!… Некоторые скажут, что это поздравление — так себе. Но, наверняка, у многих скоро отпуск, так что поднажмите еще немного. Ну а мы не сдаем обороты и в этот теплый день делимся опытом наших партнеров. Речь пойдет об оптимизации работы с базой данных. Подробнее под катом!

Передаю слово автору.

Приветствуем вас, читатели Хабра! Мы команда WaveAccess, в этой статье поделимся с вами опытом применения службы баз данных (БД) Azure Cosmos DB в коммерческом проекте. Расскажем, для чего предназначена БД, и нюансы, с которыми нам пришлось столкнуться во время разработки.

Что такое Azure Cosmos DB

Azure Cosmos DB — это коммерческая глобально-распределенная служба база данных с мульти-модельной парадигмой, предоставляется как PaaS решение. Она является следующим поколением Azure DocumentDB.

База данных была разработана в 2017 г. в корпорации Microsoft при участии доктора компьютерных наук Лесли Лэмпорт (лауреата Премии Тьюринга 2013 г. за фундаментальный вклад в теорию распределенных систем, разработчик LaTex, создателя спецификации TLA+).

Главные характеристики Azure Cosmos DB это:

  • Нереляционная база данных;
  • Документы в ней хранятся в виде JSON;
  • Горизонтальное масштабирование с возможностью выбора географических регионов;
  • Мульти-модельная парадигма данных: ключ-значение, документное, графовое, семейство столбцов;
  • Низкая задержка для 99% запросов: менее 10 мс для операций чтения и менее 15 мс для (индексированных) операций записи;
  • Спроектирована для высокой пропускной способности;
  • Гарантирует доступность, согласованность данных, задержку на уровне SLA 99,999%;
  • Настраиваемая пропускная способность;
  • Автоматическая репликация (master-slave);
  • Автоматическое индексирование данных;
  • Настраиваемые уровни согласованности данных. 5 различных уровней (Strong, Bounded Staleness, Session, Consistent Prefix, Eventual);

На графике можно видеть зависимость различных уровней согласованности от доступности, производительности и согласованности данных.

  • Для удобного перехода на Cosmos DB со своей базы данных предусмотрено множество API для доступа к данным: SQL, JavaScript, Gremlin, MongoDB, Cassandra, Azure Blob;
  • Настраиваемый брандмауэр;
  • Настраиваемый размер БД.

Задача, которую мы решали

Тысячи датчиков, расположенные по всему миру, передают информацию (в дальнейшем нотификации) каждые несколько N-секунд. Эти нотификации должны сохраняться в БД, а в дальнейшем осуществляться поиск по ним и их отображение в UI оператора системы.

Требования от заказчика:

  • Использование стек технологий Microsoft, в том числе облако Azure;
  • Пропускная способность 100 запросов в секунду;
  • Нотификации не имеют четкой структуры и могли в дальнейшем расширяться;
  • Для критических нотификаций важна скорость обработки;
  • Высокая отказоустойчивость системы.

Исходя из требований заказчика нам идеально подошла нереляционная, глобально-распределенная, надежная коммерческая БД.

Если рассмотреть похожие на Cosmos DB базы данных, то можно вспомнить об Amazon DynamoDB, Google Cloud Spanner. Но Amazon DynamoDB не является глобально-распределенной, а Google Cloud Spanner имеет меньше уровней согласованности и видов моделей данных (только табличное представление, реляционное).

По этим причинам мы остановились на Azure Cosmos DB. Для взаимодействия с БД использовали Azure Cosmos DB SDK для .NET, так как бэкенд был написан на .NET.

Нюансы, с которыми мы столкнулись

1. Управление базой данных

Для того, чтобы начать пользоваться базой данных, в первую очередь нужно выбрать инструмент для управления ей. Мы использовали Azure Cosmos DB Data Explorer в портале Azure и DocumentDbExplorer. Также существует утилита Azure Storage Explorer.

2. Настройка коллекций БД

В Cosmos DB каждая БД состоит из коллекций и документов.

Настраиваемые характеристики коллекции, на которые следует обратить внимание:

  • Размер коллекции: фиксированная или неограниченная;
  • Пропускная способность в единиц запросов в секунду RU/s (от 400 RU/s);
  • Политика индексации (включение или исключение документов и путей к индексу и из него, настройка различных типов индекса, настройка режимов обновления индекса).

Пример типичного индекса

{ «id»: «datas», «indexingPolicy»: { «indexingMode»: «consistent», «automatic»: true, «includedPaths»: [ { «path»: «/*», «indexes»: [ { «kind»: «Range», «dataType»: «Number», «precision»: -1 }, { «kind»: «Hash», «dataType»: «String» }, { «kind»: «Spatial», «dataType»: «Point» } ] } ], «excludedPaths»: [] } }

Чтобы работал поиск по подстроке, для строковых полей нужно использовать Hash-индекс («kind»: «Hash»).

3. Транзакции БД

Транзакции реализованы в БД на уровне хранимых процедур (выполнение хранимой процедуры — это атомарная операция). Хранимые процедуры пишутся на JavaScript

var helloWorldStoredProc = { id: «helloWorld», body: () { var context = getContext(); var response = context.getResponse(); response.setBody(«Hello, World»); } }

4. Канал изменений БД

Change Feed (канал изменений) прослушивает изменения в коллекции. Когда происходят изменения документов коллекции, то БД «выкидывает» событие об изменениях всем подписчикам этого канала.

Мы использовали Change Feed для отслеживания изменений коллекции. При создании канала нужно предварительно создать вспомогательную коллекцию AUX, которая координирует обработку канала изменений для нескольких рабочих ролей.

5. Ограничения БД:

  • Отсутствие bulk-операций (использовали хранимые процедуры для массового удаления, обновления документов);
  • Отсутствие частичного обновления документа;
  • Нет операции SKIP (сложность реализации пагинации). Чтобы реализовать пагинацию в запросах получения нотификаций мы использовали параметры RequestContinuation (ссылка на последний элемент в результате выдачи) и MaxItemCount (количество элементов возвращаемой из БД). По умолчанию результаты возвращаются в пакетах (не более 100 элементов и не более 1 МБ в каждом пакете). Количество возвращаемых элементов можно увеличить до 1000 с помощью параметра MaxItemCount.

6. Обработка 429-ой ошибки БД

Когда пропускная способность коллекции достигает максимума, то база данных начинает выдавать ошибку «429 Too Many Request». Для ее обработки можно воспользоваться настройкой RetryOptions в SDK, где MaxRetryAttemptsOnThrottledRequests — это количество попыток выполнения запроса, а MaxRetryWaitInSeconds — это суммарное время выполнения попыток подключения.

7. Прогноз стоимости использования БД

Чтобы спрогнозировать стоимость использования базы данных, мы использовали онлайн-калькулятор RU/s. В базовом плане одна единица запроса для элемента размером 1 КБ соответствует простой команде GET по ссылке на себя или идентификатору этого элемента.

Выводы

Azure Cosmos DB удобна в использовании, легко и гибко настраивается через портал Azure. Множество API для доступа к данным позволяют быстро осуществить переход на Сosmos DB. Не нужно привлекать администратора баз данных для обслуживания базы данных. Финансовые гарантии SLA, глобальное горизонтальное масштабирование делают эту базу данных очень привлекательной на рынке. Она подходит для использования в корпоративных и глобальных приложениях, которые предъявляют высокие требования к отказоустойчивости и пропускной способности. Мы в WaveAccess продолжаем использовать Cosmos DB в наших проектах.

Об авторе

Команда WaveAccess создаёт технически сложное высоконагруженное отказоустойчивое ПО для компаний всего мира. Александр Азаров, старший вице-президент по разработке ПО в WaveAccess, комментирует:

Сложные на первый взгляд задачи можно решить сравнительно простыми методами. Важно не только изучать новые инструменты, но и доводить до совершенства знание привычных технологий.

Блог компании

Источник

Читайте также:  Можно ли в детском саду использовать кварцевую лампу для