Ugh, so I'm not out of the woods yet actually... Still facing pretty much the same problem.
When Allow In Process disabled, Testing the connection works now and returns no error.
But if I try to query anything like
SELECT * FROM OPENQUERY(MYLINKEDSERVER, 'SELECT * FROM SomeTable')
Then I receive this error even though permissions on the security account are all setup correctly
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "SHORETEL_CDR" reported an error. Access denied.
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "MSDASQL" for linked server "SHORETEL_CDR".
I even went ahead and granted dba for % host on the mysql account. still complaining access denied.
This thread
Seems to suggest that I have to have Allow In Process enabled. Is this true??? I tried re-enabling and then I got the same hang errors I was seeing previously.
EDIT: I noticed that everytime I execute the OPENQUERY from the MSSQL server, a connection is getting spawned on the MySQL server. Still, obviously I'm missing something. Not sure why allow in process would have to be enabled...