Are you using Tableau Bridge to connect to MySQL? I assume it's in your data center or another local network location somewhere. You can't connect directly to local resources from Tableau Online.
In the first place, I uploaded the workbook with embedded data sources. There was no need for tableau bridge because there was a connection to the MySQL server where the database lies and a connection to a local geospatial file locally (that was included when publishing workbook). However, I also used tableau bridge (from my laptop for testing) as you suggest, and the extract refresh failed again. When I isolate the main data source from the other, i.e. I remove the geospatial file, and there is no cross-join between them, both approaches work fine. Thus, I can refresh the extract either form tableau online directly, or tableau bridge from my laptop. Specifically, Tableau Bridge returns this error
status code = 1003, Failed to refresh data source: sales_127_0_0_1 due to the following error: Invalid database name value
The strange thing is that when I test the connection, it returns that the database credentials are valid. Another strange thing is that when I create a distinct extract for each data source, both are refreshed successfully by Tableau Bridge
We manage to solve the problem (through Tableau bridge) by reverting the data sources position in the cross join query and obviously converting the left join to right join. maybe there is some kind of bug in tableau bridge concerning data sources position in query.