The error you're talking about is because the DatabaseOptions property is a boolean. You'll need to change that property to accept string values. There are a few places in the Setup Controller that you'll need to change how that property is used...
However, the most important part is to implement a DataServicesProvider. I added mine to core, but I think you could just put it in the Setup Module as a feature. Mine looks like this...
namespace Orchard.Data.Providers {
public class MySqlDataServiceProvider : AbstractDataServicesProvider
{
private readonly string _connectionString;
public MySqlDataServiceProvider(string dataFolder, string connectionString)
{
_connectionString = connectionString;
}
public static string ProviderName
{
get { return "MySql"; }
}
public override IPersistenceConfigurer GetPersistenceConfigurer(bool createDatabase)
{
var persistence = MySQLConfiguration.Standard;
if (string.IsNullOrEmpty(_connectionString))
{
throw new ArgumentException("The connection string is empty");
}
persistence = persistence.ConnectionString(_connectionString);
return persistence;
}
}
}
Oh, and don't forget you'll need to reference MySql.Data. It's available as a NuGet package.