IT Computer/Mac

MacOS) m1 맥북 Oracle SQL Developer (Docker 없이) 사용하기 및 the directory is not accessible 에러 해결하기

Shane_Park 2021. 4. 23. 00:10
반응형

MacOS) m1 맥북 Oracle SQL Developer (Docker 없이) 사용하기 및  the directory is not accessible 에러 해결하기. 

the directory is not accessible 에러 해결 하러 왔으면 서론 건너뛰기 클릭

> 끊임없이 최신 정보로 수정 중입니다. (최근 수정일자 : 2021 / 08 / 14 , developer 버전 21.2)

시작하기에 앞서. 혹시 SQL Developer 를 실행하는건 성공을 했는데 데이터베이스 구축을 하는 방법을 찾고 있는 분은 두 가지 방법이 있습니다.

1. Docker를 이용한 가상 환경에 DB 구축

현재 (2021. 08. 14) m1 맥북에서 Oracle 데이터베이스를 가동할 수 있는 방법은 전혀 없습니다. 수많은 해외 포럼도 찾아봤지만 그 누구도 Apple Silicon에서 OracleDB 구동한 사람은 아직 없습니다. arm64 방식으로 칩셋이 전혀 다르기 때문에 Docker를 사용해도 불가능합니다. 저도 여러가지 방법을 다 해봤는데 불가능 했습니다. 

2. 외부 서버에 DB 구축

저는 무조건 2번을 추천 합니다. AWS RDS 등을 이용 할 수 있지만 무료로 외부 DB를 구축해두고 사용하고 싶다면 아래 링크를 확인 해서 따라하면 하실 수 있습니다. 초보자에게는 다소 난이도는 있을 수 있지만 한번 DB를 구축해둔다면 앞으로 개발하시면서 평생 정말 유용하게 사용하실 수 있습니다. 몇단계 성장의 계기가 될 수도 있습니다.

https://shanepark.tistory.com/173

 

Mac) Oracle FreeTier 이용해 웹 어플리케이션 배포하기 4) 무료 데이터 베이스 만들기 및 데이터 이관

Mac) Oracle FreeTier 이용해 웹 어플리케이션 배포하기 4) 무료 데이터 베이스 만들기 및 데이터 이관하기 집에서 운영하던 모든 서버를 클라우드로 이관하는 4번째 단계입니다. 집의 노트

shanepark.tistory.com


SQL Developer 실행 하는 방법에 대한 글을 시작하겠습니다

 

 

 

Docker 가 Apple Silicon을 정식으로 지원하기 시작했습니다.

제가 처음 맥북을 샀을때만 해도 Apple Silicon은 고사하고, Rosetta 환경에서도 정상적으로 작동하지 않아서 고생을 했는데요, 

그때부터 사용하던 방식을 Docker를 제대로 지원하는 지금도 사용중입니다.

 

저는 팀원들과 만들었던 프로젝트들을 항상 구동해두기 위해 24시간 켜두는 노트북 서버가 있기때문에  맥북에서 따로 서버를 켤 필요가 없습니다. 항상 켜두는 컴퓨터가 없더라도 AWS에서 Free Tier RDS 를 생성하거나 Oracle Cloud 에서 무료로 Instance를 생성해 본인만의 서버를 만든다면 매우 유용하게 사용하실 수 있습니다. 처음엔 꽤 어려울 수 있긴 한데 충분히 도전해 볼 가치가 있다고 생각합니다.

 

Oracle Database는 공식적으로 Windows 와 Linux 에서만 구동이 가능합니다. 그래서 Mac OS 에서는 Docker를 이용해서 서버를 켜는 건데, 역으로 SQL Developer만 사용한다면 굳이 Docker를 사용할 전혀 필요가 없습니다.

SQL Developer는 Java로 구동되기 때문에 문제없이 얼마든 실행 할 수 있습니다.


 

Docker 없이 SQL Developer 사용 하는 방법을 안내해드리겠습니다.

 

www.oracle.com/tools/downloads/sqldev-downloads.html

일단 SqlDeveloper를 다운 받습니다. 최신 버전을 다운 받으면 됩니다.

 

 

Mac OSX 용을 다운 받으면 되는데 , JDK 8 OR 11 Required 라고 써 있습니다.

오라클 JDK 8, 11 버전과  모두 사용해봤는데 굉장히 커넉 패닉 현상이 빈번하게 일어 났습니다. 

심지어 14 혹은 16 버전만 설치하면 JDK8 버전 이상을 설치하라고 하며 실행도 되지 않습니다.

한동안은 저는 adoptopenjdk 14 버전을 설치해서 잘 사용 해 왔는데, 특정 SQL Developer 버전부터는 Oracle JDK 가 아니면 JDK 8 이상 버전을 설치하라는 에러 메시지가 뜨면서 실행이 되지 않았습니다.

사실 저는 여러번 해당 문제를 해결을 했었는데요. SQL Developer가 새로운 버전이 나오면 Oracle 사에서는 구 버전에 대한 다운로드 링크를 아에 삭제해 버리다 보니 구 버전에서의 해결책이 신 버전에서 안되는 경우가 잦았습니다. 그래서 다소 번거로울 수 있지만 어떤 버전에서든 통했던 방법을 알려드리겠습니다.

 

그래서 m1 환경에서 자주 SQL developer가 튕기거나 하는 분들에게 새로운 실행 방법을 추천드리겠습니다.

 

다운받은 SQLDeveloper.app 파일을 

 

Applications 폴더에 넣어줍니다.

실행해보면

뭐 의심 된다고 실행을 안해줍니다.

설정 - > Security & Privacy에서 Open Anyway를 클릭해줍니다.

 

자바 버전이 어쩌구 하면서 켜지지가 않는데요 여기에서 두가지 방법이 있습니다.

1. 자바가 없다면 자바를 해당 링크에서 받아 설치합니다. 자바는 있긴 있어야 합니다. 자바 설치하고 실행 하면 실행은 잘 될 수 있는데 m1 맥북 이라면 아마 자주 튕길 수도 있습니다.

 

2. 제가 사용하는 방법입니다.

cd /Applications/SQLDeveloper.app/Contents/resources/sqldeveloper
zsh sqldeveloper.sh

 

위의 명령을 입력하면 바로 SQL Developer가 켜집니다.

자바 버전이 높아서 경고가 나옵니다. 위에서 나온 경로에 찾아가보겠습니다.

여기에서 product.conf 파일을 수정할 수도 있고, 위의 명령어를 항상 입력해서 실행 하실 수도 있습니다.

위의 product.conf 내용을 보면, SetJavaHome 부분이 원래는 주석 처리 되어있는데요, 본인의 jdk 경로를 넣으시고 주석을 풀으면 됩니다.

저의 경우에는

SetJavaHome /Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home

이런 식으로 작성 하였습니다.

 

이렇게 한번 설정해주시면 SQL Developer를 실행할 때 실행이 안되던 문제가 말끔하게 해결됩니다.

/usr/libexec/java_home -V

위의 명령어로 설치되어있는 자바 경로를 확인 하실 수 있습니다.

 

product.conf 를 수정하고 싶지 않고 명령어를 입력하기 번거롭다면  위의 명령어를 자동으로 실행하도록 .app 파일도 직접 만들어 보았습니다.

SQLDEV.app.zip
0.84MB

필요한 분 계신다면 만들어놓은 파일 올려둘테니 받아서 사용하실 수 있습니다. 실행만 하면 위 명령어가 바로 실행됩니다.

처음 실행하면 이런식으로 Apple이 체크하지 못한 앱이라 실행이 안된다는 문구가 나오는데요

System Preferences - > Security & Privacy -> General에 가서

Open Anyway를 클릭하면

바로 실행이 됩니다. 하지만 저는 product.conf 파일을 수정해서 실행하시길 권해드립니다.!

 


 

위에서 제시한 여러 가지 방법을 사용해 보시고 본인에게 편한 방법을 사용하시면 됩니다.

저는 개인적으로 JAVA 버전만 잘 관리 해낼 수 있다면 자바를 여러가지 버전을 사용해보는게 제일 좋다고 생각합니다. JAVA8 에서만 돌릴 수 있는 오래된 프로그램들도 있고, ( 전자정부 프레임워크 Eclipse는 자바16 에서 에러가 굉장히 심해 JDK 8을 지정해서 구동해야 했습니다) 반대로 최신 자바에서 힘을 쓰는 프로그램들도 있기 때문입니다. ( SQL Developer는 JDK 8 환경에서 구동하기가 극악입니다)

저는 자바를 2가지 버전 설치해두고 필요에 따라 사용하고 있습니다.


 

 

추가로 the directory is not accessible  에러 해결법입니다.

Sql Developer 안에서 File이나 Folder에 접근하려고 할때 sql developer the directory is not accessible 에러가 난다면,

bash의 권한이 없기 때문입니다.

bash 에 Full Disk Access를 부여하면 문제없이 잘 사용할 수 있습니다!

bash 에 권한 부여는  아래 링크를 참고했습니다.

community.oracle.com/tech/developers/discussion/4477224/sql-developer-cant-read-files-from-the-users-documents-folder-in-mac-os

간단히 설명하자면, Security&Privacy - > Full Disk Access 에서

1 . 자물쇠 풀고

2. + 버튼 누르고

3. / 누르고

4. go to Folder 팝업창이 뜨면 /bin/bash 를 입력합니다.

5.아래 처럼 나왔을때 OPEN 눌러서 bash에 + 체크가 되면 끝 입니다.

이제 폴더들을 잘 탐색 할 수 있습니다.

 

위에 있는 내용들을 한번 쭉 읽어보고 차근 차근 따라하신다면 어느 맥북에서건 큰 무리 없이 Sql Developer를 구동하실 수 있을 거라 생각됩니다. 혹시 막히는 부분이 있다면 댓글이나 이메일 보내주시면 최대한 빨리 도와드리겠습니다.

 

Sql developer를 실행하는 것을 넘어서, DB를 구축하고 싶은분은 아래 링크를 참고해서 무료 DB 를 하나 여는걸 추천합니다.

https://shanepark.tistory.com/173

 

Mac) Oracle FreeTier 이용해 웹 어플리케이션 배포하기 4) 무료 데이터 베이스 만들기 및 데이터 이관

Mac) Oracle FreeTier 이용해 웹 어플리케이션 배포하기 4) 무료 데이터 베이스 만들기 및 데이터 이관하기 집에서 운영하던 모든 서버를 클라우드로 이관하는 4번째 단계입니다. 집의 노트

shanepark.tistory.com

 

또한 마지막으로 SQL Developer 실행하는데 위 글을 읽어도 불편함을 겪는 분들은 더 쉽게 사용할 수 있는 SQL Client가 있기 때문에 DBeaver를 추천 해 드리겠습니다. 기존에 SQL Developer를 사용하시던 분들도 한번 써보시길 강력 추천합니다.

https://shanepark.tistory.com/180

 

DBeaver 설치 하고 Oracle, MariaDB 접속해보기

DBeaver 설치하고 Oracle, MariaDB 접속해보기 DBeaver는 SQL 클라이언트이자 데이터베이스 관리 도구 입니다. RDBMS의 경우에는 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신합니다.  

shanepark.tistory.com

 

반응형