Comments (30)
The [iODBC][Driver Manager]dlopen(/usr/local/mysql-connector-odbc-8.2.0-macos13-x86-64bit/lib/libmyodbc8w.so, 0x0006): tried: '/usr/local/mysql-connector-odbc-8.2.0-macos13-x86-64bit/lib/libmyodbc8w.so' (file system sandbox blocked open())
error probably indicates there is some form of notarisation capability issue with the Office 365 Excel being used as indicated on this stack overflow post.
Is the MySQL ODBC driver Intel 64bit only as implied it the directory path name and can be confirmed with the command:
file /usr/local/mysql-connector-odbc-8.2.0-macos13-x86-64bit/lib/libmyodbc8w.so
As if so and Excel is an Intel only app the macOS Rosetta 2 needs to be installed on M1 machines for it to work. See this post on OpenLink ODBC Driver and iODBC usage on Apple Silicon M1 machines for more details.
Note also that OpenLink provide MySQL ODBC Drivers for macOS with both Intel 64 and M1 arm64 binaries bundled and will work against Intel 64 or arm64 application on macOS M1 machines.
from iodbc.
Read here #29 at first
Note:
- move /usr/local/mysql-connector-odbc-8.2.0-macos13-x86-64bit/lib/libmyodbc8w.so to /Library/ODBC/...
symlinks will NOT work, only hard link or copy/move - also note that you must check all dynamic libs, that is used by MySQL ODBC driver, if driver used some dynamic libs from /usr/local/... so it must be fixed also, ie libs must be moved and pathes in libmyodbc8w.so must be fixed to new locations
from iodbc.
Hugh Williams, Thank you for the response. I noted there was only one suggestion on the Stack Exchange link you provided and I had tried something similar. I went through the process of disabling system integrity, shutdowns and reboots, csrutil disable and csrutil enable, and in-between those steps adding a symbolic link, but that failed since the /System/Preboot is read only. Without the correct bind commands from Apple, I'm hesitant to risk my computer in establishing the link in that read only portion of the software. To get what I did done was over a 16 step procedure and I'm not sure that is worthwhile for software that is being frequently updated. When I talked to Apple, they seemed to want to help, but pointed back to Microsoft. When I talked to Microsoft, they were aware that they had a problem, but didn't have a solution. In February 2023, Microsoft appeared to have the problem fixed in a Beta version of MS Office 365, but we are now beyond that version in stable and the ability to connect to an SQL database on a silicon MAC does not appear, nor does it appear on an Intel Mac that runs Sonoma. So I'm still researching and looking to see if I can solve this one. Again, thanks you for the response.
from iodbc.
Smalinin, just saw your comment after my last comment. Thanks, I'll give that a try.
from iodbc.
Smalinin, Just finished trying. As before works outside of Excel, but testing inside Excel yields the same error message. I think I need to fix that problem with '/System/Volumes/Preboot/Cryptexes/OS' but without Apple providing the proper commands and sequence I'm not willing to risk my computer, although Macs are very resilient. Again, thanks, appreciate all the help I can get.
from iodbc.
@BUMPRW
The next solution must works => #29 (comment)
It is for MariaDB odbc driver, but basic idea is the same.
Did you use these steps ?
from iodbc.
Smalinin, Nope, moved it to ~/Library/ODBC. Will give it a try. Thanks
from iodbc.
Smalinin,
In the original configuration all the crypto libraries were in the same directory as the driver, except v1.1 which supposedly had an end of life last Feb-April timeframe. When I questioned Microsoft why we were loading version 1.1 for their driver, I got a we need to sort that out. So I need to move the 1.1 files over there also I assume . . . bad word to use but is that correct?
from iodbc.
- You need move ALL libs, that is used by drivers and that is located in /usr/local/..
- What kind of MySQL ODBC installer did you use the
- DMG Archive -- mysql-connector-odbc-8.2.0-macos13-x86-64bit.dmg
OR - Compressed TAR Archive -- mysql-connector-odbc-8.2.0-macos13-x86-64bit.tar.gz
I have rechecked Compressed TAR Archive installer, it contains all files, that could be simply copy to /Library/ODBC/.. without additional fix, the library pathes use RPATH already, so it must work, I think.
Try download Compressed TAR Archive installer, extract it and just copy ALL files from ./lib/* to /Library/ODBC/...
from iodbc.
this is what tool looks like for ~/Library/ODBC/mysql-connector-odbc-8.2.0-macos13-arm64/lib
otool -L libmyodbc8w.so
libmyodbc8w.so:
@rpath/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
@rpath/libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
@rpath/libiodbcinst.dylib (compatibility version 1.0.0, current version 3.52.15)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.32.0)
ls -l for same above
total 46920
-r--r--r-- 1 root wheel 2192208 Jan 5 14:02 libcrypto.1.1.dylib
-rw-r--r-- 1 root wheel 3471232 Jan 5 10:23 libcrypto.3.dylib
lrw-r--r-- 1 root wheel 17 Jan 5 10:23 libcrypto.dylib -> libcrypto.3.dylib
-rw-r--r-- 1 root wheel 392320 Jan 5 10:23 libfido2.1.13.0.dylib
lrwxr-xr-x 1 root wheel 21 Jan 5 10:23 libfido2.1.dylib -> libfido2.1.13.0.dylib
lrwxr-xr-x 1 root wheel 16 Jan 5 10:23 libfido2.dylib -> libfido2.1.dylib
-rwxr-xr-x 1 root wheel 8413824 Jan 5 10:23 libmyodbc8a.so
-rwxr-xr-x 1 root wheel 8430560 Jan 5 10:23 libmyodbc8w.so
-r--r--r-- 1 root wheel 506336 Jan 5 14:05 libssl.1.1.dylib
-rw-r--r-- 1 root wheel 598912 Jan 5 10:23 libssl.3.dylib
lrwxr-xr-x 1 root wheel 14 Jan 5 10:23 libssl.dylib -> libssl.3.dylib
Still have the same problem, but we gave it a try. Hope I have this right. I also compared to the original and except for the openssl 1.1 files it was the same. The tool output was identical, only openssl 3.0.
It doesn't see the earlier version of openssl and although Microsoft didn't come out and say it, they certainly implied it when they said they need to sort that one out
from iodbc.
@BUMPRW — I suggest that you code fence terminal output and similar blocks, as this generally helps with clarity. A line with just three backticks (```
) above and below each block will do the job. It can also be helpful to code fence terminal commands, SQL queries, and similar short inline items, by putting a single backtick before and after (for example, `ls -l`
, which displays as ls -l
).
from iodbc.
Tall Ted,
Thanks, but I'm just a worthless pogue who comes to GitHub when I need help or clarity. Frankly, I'm clueless and will have to look that one up, but will give it a try, so it would be
'otool -L libmyodbc8w.so'
'libmyodbc8w.so:'
'@rpath/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)'
'@rpath/libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)'
'/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)'
'/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)'
'@rpath/libiodbcinst.dylib (compatibility version 1.0.0, current version 3.52.15)'
'/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.32.0)'
or should i start off as:
'otool -L ~/Library/ODBC/mysql-connector-odbc-8.2.0-macos13-arm64/lib/libmyodbc8w.so'
because I just normally 'cd' to the directory I'm working with
from iodbc.
Everything works for me on macOS 12.6 on M1 cpu
I did next:
- download mysql-connector-odbc-8.2.0-macos13-arm64.tar.gz
- extract all files from ./lib/ in tar archive to /Library/ODBC/MySQL/
-rw-r--r-- 1 root wheel 3471232 Sep 22 18:40 libcrypto.3.dylib
lrwxr-xr-x 1 root wheel 17 Sep 24 23:45 libcrypto.dylib -> libcrypto.3.dylib
-rw-r--r-- 1 root wheel 392320 Sep 22 19:23 libfido2.1.13.0.dylib
lrwxr-xr-x 1 root wheel 21 Sep 24 23:45 libfido2.1.dylib -> libfido2.1.13.0.dylib
lrwxr-xr-x 1 root wheel 16 Sep 24 23:45 libfido2.dylib -> libfido2.1.dylib
-rwxr-xr-x 1 root wheel 8413824 Sep 24 23:45 libmyodbc8a.so
-rwxr-xr-x 1 root wheel 8430560 Sep 24 23:44 libmyodbc8w.so
-rw-r--r-- 1 root wheel 598912 Sep 22 18:40 libssl.3.dylib
lrwxr-xr-x 1 root wheel 14 Sep 24 23:45 libssl.dylib -> libssl.3.dylib
- add next to /Library/ODBC/odbcinst.ini
[ODBC Drivers]
MySQL = Installed
[MySQL]
Driver = /Library/ODBC/MySQL/libmyodbc8w.so
- add DSN to /Library/ODBC/odbc.ini
[ODBC Data Sources]
mysql = MySQL
[mysql]
Driver = /Library/ODBC/MySQL/libmyodbc8w.so
Server=192.168.0.22
Database=world
- run macOS app
iODBC Administrator
and tested DSN
- run MS Excell and try Import data
From Database (Microsoft Query)
Screen.mp4
from iodbc.
Backticks (`
) a/k/a GRAVE ACCENTs (U+0060); not single-quotes ('
) a/k/a APOSTROPHEs (U+0027).
Inline would look like `otool -L libmyodbc8w.so`
(or `otool -L ~/Library/ODBC/mysql-connector-odbc-8.2.0-macos13-arm64/lib/libmyodbc8w.so`
), and the block that follows would look like this to you, as the writer --
```
libmyodbc8w.so:
@rpath/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
...
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.32.0)
```
-- which would then look like this to us, as the readers --
libmyodbc8w.so:
@rpath/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
...
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.32.0)
This is particularly important when the blocks include characters which GitHub might interpret as Markdown, radically changing what is presented to your readers. Here, it just helps distinguish Terminal input/output Vs. human writing (yours or ours).
from iodbc.
Sergey,
Okay, 1st I'm going to make mine look like yours, except I'm running OS14.2.1. By the way I haven't run it in a couple of years but I know it works on my Mac-mini which is running High Sierra. If that doesn't work I'm going to uninstall the DMG version and reinstall using 'mysql-connector-odbc-8.2.0-macos13-arm64.tar.gz'. Again, thanks.
from iodbc.
Tall Ted,
Where is that on the keyboard? alt character?
I use those character codes in Latex, R and Python and when I want to print something special, but that's like $$\U0060$$
from iodbc.
@BUMPRW — On my US keyboards, `
is lowercase on the key where uppercase is tilde ~
, at upper-left, to the left of 1
, below ESC and above TAB.
from iodbc.
Tall Ted,
``` Okay, I've never used that key. They don't teach that in mid 1970s Fortran crash courses for linear methods. Thanks.
from iodbc.
Sergey,
Step1 failed with the same results.
So I'm cleaning out the old and loading the .gz file
from iodbc.
First - your DSN must work in iODBC Administrator app
when you click on Test connection
from iodbc.
Sergey,
It works fine when Excel is not running.
As soon as you try to test it in Office 365 Excel v 16.80 you get the message.
from iodbc.
I updated macos to Sonoma 14.2.1 - it works also in MS Excell .
I use MS Excell ver 16.80 (23121017)
from iodbc.
Try to check your Excell app with Finder, open Get Info
for app and recheck, that Excell app is Universal and that you don't have checked option Open using Rosetta
- actual for M1 cpu
from iodbc.
Sergey,
I'm going to reload MsOffice and rosetta was not checked.
Another strange behavior is that User DSN does not allow adding in Excel.
I don't know of any strange configurations I've done with Excel, but I do use it frequently.
from iodbc.
Sergey,
I have a user DSN configured in iODBC, I just have the server and database data filled in. You appear to use your IP address, I use local host but have tried the IP address and 127.0.0.1 could that be a factor?
from iodbc.
I have MySQL server on an another host.
from iodbc.
Symptoms are completely different today.
I can see changes I make in iODBC outside Excel, and I did use your init setups initially
Inside of Excel I see nothing but the driver and get Request Failed on any attempt.
I've played around with permissions, but even with everyone that doesn't make a difference.
from iodbc.
Tall Ted,
``` Okay, I've never used that key. They don't teach that in mid 1970s Fortran crash courses for linear methods. Thanks.
Note that when you use the ```
Markdown code fence on leading and trailing lines, you need to include line breaks in your text, because it's like HTML's <code><pre> ... </pre></code>
. When you use the `
Markdown code fence, it is more like HTML's <code> ... </code>
(no <pre>
).
Also note, I did not suggest wrapping all of your messages in code fences; only the CODE (e.g., odbc.ini
content) and Terminal blocks (e.g., ls -l
command and output).
To your continuing issues --
It is generally best to use only System DSNs, for a variety of reasons, including the way the sandboxing works on recent versions of macOS. Even if you need to switch to User DSNs or File DSNs later, I suggest you start by getting a System DSN working.
You may also want to consider using a commercial ODBC driver, such as one from OpenLink Software (maintainer of iODBC). We have strong incentive to make our drivers work "out of the box", which you can test with a $0.00 (FREE!) 30-day evaluation license. Only you can decide whether continuing to tinker with mysql-connector-odbc
will "cost" you less than the license fees for such a commercial driver (see current special offers here).
from iodbc.
Tall Ted,
Thanks, I'll look into that, but I was trying to avoid the expense because I use databases infrequently.
The connector saves time in converting the output to a ".csv" file.
I have a few more thoughts regarding permission issues that I'm going to try.
I have read some of your previous posts and have reset permissions on the ".ini" files, plus I'm going to re-read Sergey's notes.
I reconfigured last night following his notes, I thought, but Excel is still not reading the odbc.ini file.
Though my wife and I are much older, she is a grad-student and sometimes it is easier to deal with databases than large Excel files.
It is too bad Borland's Dbase is no longer around, I wrote some pretty heavy duty stand-alone programs in that language back in the mid 80s.
Again, Thanks, got to work on consolidating some "csvs", but if I solve my Dbase problem, I'll post a solution.
P.S. How do you get this editor out of the code mode? It seems to randomly jump into that mode, so I'm spacing sentences
from iodbc.
"Code mode" is turned on and off (for either selected text or text as you're entering it) by clicking the <>
in the Write | Preview | H B I ...
"Add a comment" toolbar. It can also be started by starting any given line with 4 spaces; ending such a start requires an empty line. You may find GitHub's Markdown documentation (also linked from the bottom of the "Add a comment" section, where it says "Markdown is supported") helpful in figuring this part out.
from iodbc.
Related Issues (20)
- Crash in SQLBindParameter when driver manager tracing is enabled & a bind offset is in use
- iODBC loses any diagnostics posted during SQLDriverConnect(W)
- why 'php' is loading libiodbc.so.2 ? HOT 4
- calls to SQLBindParameter causes libiodbc to return `SQL_INVALID_HANDLE` on Big Sur HOT 8
- Unable to connect to SQLite using SQLiteODBC on MacBook Air M1 HOT 24
- Comparison with unixODBC? HOT 1
- Please add cmake based build script HOT 3
- SQLGetData doesn't support SQL_ARD_TYPE HOT 3
- macOS installed headers include non-existing files (e.g. <iODBC/sqltypes.h>) HOT 5
- Ugly symlinks installed by macOS installer (//Library/...)
- iODBC on redhat entreprise 8 HOT 5
- Question: how to connect Debian 12 with iODBC to Azuresql HOT 6
- Deadlock during SQLDriverConnect() HOT 1
- Buffer that is passed to SQLDrivers did not contain a terminating zero but should according to the ODBC standard
- -- please delete --
- Build fails with LTO HOT 3
- Getting error when adding DSN for MongoDB in MS Excel HOT 5
- SQLGetPrivateProfileString() failing to recognize system DSN HOT 3
- Obscure error message "SQLDriverConnect = ?????????? (101) SQLSTATE=??1" for unicode psqlodbc HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iodbc.