I know you guys aren’t lawyers but I was just curious if anyone here could answer my question. If I want to use the MySQL Community Server in a Xojo program that I intend to sell do I need an enterprise license? I would just be including the MySQL Community Server plugin that came with Xojo in with my libraries so that I can connect remotely to a MySQL database on a web server. Does anyone know the rules on this usage? Thanks!
I am NOT a lawyer.
but from what I understand, if you are using MySQL in a commercial product/offering, you need a commercial/enterprise license for it.
PostgreSQL doesn’t have this issue. It is free for OSS & commercial software.
but DO NOT take my word for this. Speak to a lawyer that specializes in Computer Contracts/EULAs.
I think it comes down to if your program is “dependent” on mysql then the licensing may affect you
MariaDB has the same issues
And its not necessarily YOU that needs to include the license but the end user of your software - they may already have one
Personally I avoid 100% of this ambiguity & use PostgreSQL which has an unambiguous “free for any use” license
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
Thank you both that does clarify this issue quite a bit for me!
Unfortunately the dual license that MySQL & Maria have DOES confuse the heck out of things
PostgreSQL’s clear licensing makes it a dead easy choice on that basis alone
I also think it’s a better db engine anyways.
It used to be the case that it was MUCH more difficult to install than mySQL.
The Enterprise DB guys have really done PosgreSQL a world of good in pushing it to be easy to install & use and their support & additions to it really have made PostgreSQL a really simple choice now.
To add Norman info:
I’ve made up a layer class for all my I/O stuff. A function named .CreateDatabaseProvider(param) as Database gets the Provider and another function .SQL makes all queries. There are a lot more functions and methods but I guess you get the picture. With this I can switch easily between different DMBS like mySQL, SQLlite and ODBC on the fly leaving the rest of my app untouched (as far as I am not using any DB specific SQL syntax).
Don’t hassle with license questions. Give your customers the free choice of their DBMS. As far as you distribute your software without any MySQL Server on same medium you are clear of any legal claims.
[code]function CreateDatabaseProvider(param as String) as Database
#pragma BackgroundTasks false
dim db as Database
try
select case param.Uppercase
case "ODBC"
dim dbODBC as new ODBCDatabase
dbODBC.DataSource = self.DBNAME
dbODBC.UserName = self.DBUSER
dbODBC.Password = self.DBPASSWORD
db = dbODBC
case "MySQL"
dim dbMySQL as new MySQLCommunityServer
dbMySQL.host = self.DBHOST
dbMySQL.port = self.DBPORT
dbMySQL.databaseName = self.DBNAME
dbMySQL.userName = self.DBUSER
dbMySQL.Password = self.DBPASSWORD
db = dbMySQL
case "SQLlite"
dim dbSQLLite as new SQLiteDatabase
dim FI as new FolderItem
FI = SpecialFolder.ApplicationData.Child("jakobssystems").Child(self.LOCAL_DBNAME)
if FI <> nil then
if FI.Exists then
dbSQLLite.DatabaseFile = FI
dbSQLLite.MultiUser = true
db = dbSQLLite
end if
end select
catch err as NilObjectException
Finally
end try
#pragma BackgroundTasks true
return db
return
end function[/code]
[code]function SQL(CustomSQL as String) as REcordSet
#pragma BackgroundTasks false
if CustomSQL <> “” then
dim db as Database
dim rs as RecordSet
db = self.CreateDatabaseProvider
try
If db.Connect then
rs = db.SQLSelect(CustomSQL)
else
rs = nil
end if
catch err as NilObjectException
Finally
end try
return rs
end if
#pragma BackgroundTasks true
end function[/code]
Well, for me I can simply configure SQLDatabaseMBS class to have libraries for mysql, postgre SQL, ODBC and Microsoft ready and offer user a dialog to enter his login for database. Once class to handle them all.
Just to add if you’re working on a Mac the Postgresql App makes for a very easy install.